找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5597|回复: 5

[教程源码] 一个简单的利用设备编号和使用天数,生成秘钥串并校验.....

[复制链接]

4

主题

5

回帖

13

积分

学前班

鲜花
0
猫粮
41
发表于 2021-1-13 14:53:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
[按键精灵] 纯文本查看 复制代码
Function 秒转化(秒数)
        Dim Time_d, Time_h, Time_m, Time_s
        Dim 秒转化
        
        Time_d = Fix(秒数/86400)//天
        Time_h = Fix((秒数 - Time_d *86400)/3600)//时
        Time_m = Fix((秒数 - Time_d *86400 - Time_h * 3600)/60)//分
        Time_s = 秒数 - Time_d *86400 - Time_h * 3600 - Time_m * 60 //秒
        秒转化 = Time_d & "天" &  Time_h & "时" & Time_m & "分" & Time_s & "秒"
End Function

Function 获取网络时间()
        Import "Cjson.lua"
        Dim sUrl = "http://quan.suning.com/getSysTime.do"
        Dim sJson = Url.Get(sUrl)
        Dim table = Cjson.Decode(sJson)
        获取网络时间 = table["sysTime2"]
End Function

//开发者按照授权天数, 设备编号 生成授权码【s】,提供给使用者输入到脚本中.
Sub 授权码生成(授权天数, 设备编号)
        Dim 当前时间
        Dim 到期时间戳
        Dim 到期时间
        
        Dim text
        Dim s,v
        Dim pwd = "20100415"
        
        TracePrint ("设备编号:" & 设备编号)
        
//        当前时间 = zm.GetNetworkTime(1) //紫猫经常返回Null
        当前时间 = 获取网络时间()
        TracePrint "当前时间:", 当前时间
        If 当前时间 = Null Then 
                TracePrint "取当前时间错误"
                EndScript        
        End If
        
        到期时间戳 = zm.TimeAdd(当前时间, 授权天数 * 86400, "秒")
        TracePrint "到期时间戳:", 到期时间戳
        
        到期时间 = DateTime.Format("%Y-%m-%d %H:%M:%S", 到期时间戳)
        TracePrint "到期时间:", 到期时间
        
        text = 设备编号 & "|" & 到期时间戳
        s = zm.EncodeDES(text, pwd, {"mode":"cbc","block":"des3","iv":"abcdefgh","cipherout":64})
        TracePrint "对明文", text, "使用密钥", pwd, "进行DES3-CBC加密结果:", s
        
        //测试!!!
        授权码认证(s)
End Sub

//在脚本运行起来时候,调用此函数判断密文授权码。
//如果用户没有的到密文授权码,那么请提供使用授权天数和本机设备编号给开发者生成授权码.
Sub 授权码认证(密文授权码)
        Dim 设备编号
        
        Dim pwd = "20100415" //请修改8位数的3des秘钥, 千万别用我的哦,否则我就给你破解了!!!
        Dim v
        Dim mystring
        
        Dim 授权码设备编号
        Dim 授权码到期时间戳
        Dim 授权码到期时间
        
        Dim 剩余授权时间
        Dim 当前时间
        Dim 到期时间
        
        设备编号 = GetDeviceID()
        TracePrint ("当前设备唯一编号:" & 设备编号)

        If Len(密文授权码) = 0 Then 
                Dialog.MsgBox "授权码认证,密文授权码为空" & "\n本机编号:" & 设备编号 & "\n请联系开发者", 0
                EndScript
        End If
        
        v = zm.DecodeDES(密文授权码, pwd, {"mode":"cbc","block":"des3","iv":"abcdefgh","cipherout":64})
        TracePrint "对十六进制密文", 密文授权码, "使用密钥", pwd, "进行DES3-CBC解密结果:", v
        
        mystring = Split(v, "|")
        授权码设备编号 = mystring[1]
        授权码到期时间戳 = mystring[2]
        TracePrint "授权码设备编号:" & 授权码设备编号 & ",授权码到期时间戳:" & 授权码到期时间戳        
        
        If StrComp(授权码设备编号, 设备编号) <> 0 Then 
                Dialog.MsgBox "授权码认证,授权码设备编号错误" & "\n授权码设备编号:" & 授权码设备编号 & "\n本机编号:" & 设备编号, 0
                EndScript
        End If
        
//        当前时间 = zm.GetNetworkTime(1) //紫猫经常返回Null
        当前时间 = 获取网络时间()
        TracePrint "当前时间:", 当前时间
        If 当前时间 = Null Then 
                Dialog.MsgBox "授权码认证,取当前时间错误", 0
                EndScript        
        End If
        到期时间 = DateTime.Format("%Y-%m-%d %H:%M:%S", 授权码到期时间戳)
        TracePrint "到期时间:", 到期时间
        剩余授权时间 = zm.TimeDiff(到期时间, 当前时间)
        If 剩余授权时间 > 0 Then 
                TracePrint "剩余授权时间:", 剩余授权时间 & "秒," & 秒转化(剩余授权时间)
        Else 
                Dialog.MsgBox "授权码认证,剩余授权时间到期" & "\n到期时间:" & 到期时间 & "\n当前时间:" & 当前时间, 0                        
        End If
End Sub


本人也是按键初学者,如有不足,望多多指教。:)

评分

参与人数 1猫粮 +5 收起 理由
紫猫 + 5 感谢!

查看全部评分

楼主热帖
  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7413
QQ
发表于 2021-1-13 21:35:06 | 显示全部楼层
感谢分享~

0

主题

14

回帖

14

积分

学前班

鲜花
0
猫粮
30
发表于 2021-1-15 15:45:15 | 显示全部楼层
感谢分享!太强大了

4

主题

5

回帖

13

积分

学前班

鲜花
0
猫粮
41
 楼主| 发表于 2021-1-18 14:00:43 | 显示全部楼层
archaelming 发表于 2021-1-15 15:45
感谢分享!太强大了

你也是初学者?
  • 打卡等级:无名新人

0

主题

9

回帖

9

积分

按键电脑班学员

鲜花
0
猫粮
162
发表于 2021-1-19 20:51:52 | 显示全部楼层
好东西呀,哈哈!

1

主题

9

回帖

11

积分

学前班

鲜花
0
猫粮
19
发表于 2021-2-16 13:22:27 | 显示全部楼层
学习了,感谢大佬
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫猫编程学园

GMT+8, 2024-11-21 21:52

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表