[按键精灵] 纯文本查看 复制代码
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