以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  软件加密  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=173072)

--  作者:outcat
--  发布时间:2021/11/13 20:12:00
--  软件加密
软件注册机
生成的机器注册码
Dim d As Date = e.Form.Controls("EndDate").value
Dim CmpCode As WinForm.TextBox = e.Form.Controls("机器码")
Dim CalCode As WinForm.TextBox = e.Form.Controls("生成注册码")
Calcode.text = EncryptText(cmpcode.text & d,"yhkj","yhkj")

我这个是机器码+ 软件使用到期日期 加的密

在客户注册界面,客户注册成功代码
Dim CmpCode As WinForm.TextBox = e.Form.Controls("机器码")
Dim RegCode As WinForm.TextBox = e.Form.Controls("注册码")
\'
\'If cmpcode.text <> DecryptText(regcode.text,"yhkj","yhkj")  \'若注册码不正确
    \'msgbox("无效的注册码")
\'Else
    \'msgbox("感谢你的注册!")
    \'SaveConfigValue("注册状态" & ComputerId,True)  \'若注册成功则保存设置,并关闭窗体
    \'e.Form.Close
\'End If
  \'Dim d As Date

Dim reg As WinForm.Label = e.Form.Controls("Label3")
Dim d As String = DecryptText(regcode.text,"yhkj","yhkj")  
reg.text = "你的软件使用截止日期为 " & d

我希望解密的时候把机器码 和日期  分别解密出来

注册成功后,让客户能够看到软件使用的截止日期,可现在这会不会弄了,只能做到解密把完整的注册码解密出来,请老师帮忙

--  作者:有点蓝
--  发布时间:2021/11/14 20:38:00
--  
用一个符号把2个值分开,比如下划线

Calcode.text = EncryptText(cmpcode.text & “_” & d,"yhkj","yhkj")

解密后根据下划线拆分即可

--  作者:outcat
--  发布时间:2021/11/16 21:37:00
--  
Calcode.text = EncryptText(cmpcode.text & “_” & d,"yhkj","yhkj")
老师这个机器码可以判断正确,解密的时候我想要把 这个 日期变量  d 解密出来

   实现  msgbox("感谢您的注册! 软件使用截止日期为 " & d )
我定义 Dim d As sring  值 为空

Dim d As Date  值为  00:00:00   这个怎么解密不出来呢


--  作者:有点蓝
--  发布时间:2021/11/16 21:58:00
--  
贴出完整代码
--  作者:outcat
--  发布时间:2021/11/17 9:37:00
--  
完整代码
Dim CmpCode As WinForm.TextBox = e.Form.Controls("机器码")



Dim d As String


If Cmpcode.text = EncryptText(cmpcode.text & "_" & d,"yhkj","yhkj") \'若注册码不正确
    msgbox("无效的注册码")
Else
    msgbox("感谢您的注册! 软件使用截止日期为 " & d)
    SaveConfigValue("注册状态" & ComputerId,True)  \'若注册成功则保存设置,并关闭窗体
    e.Form.Close
End If

--  作者:有点蓝
--  发布时间:2021/11/17 9:41:00
--  
这个代码只是保存了注册信息,解析这个注册信息的代码呢?

Dim n As string = ""
n = GetConfigValue(
"注册状态" & ComputerId,"")
if n > "" then
dim ar() as string = n.split("_") 
msgbox(ar(0))
msgbox(ar(1))
end if

--  作者:outcat
--  发布时间:2021/11/17 14:53:00
--  
老师,这个执行了,先弹出 一个 true,后面就是  提示  索引超出了数组界限
--  作者:有点蓝
--  发布时间:2021/11/17 15:08:00
--  
哦,代码保存的是true字符串呀,并不是保存的注册码

SaveConfigValue("注册状态" & ComputerId,"这里改为需要保存的注册码")

另外代码逻辑也有问题呀,自己和加密后的自己进行比较,下面代码是永远都不会成立的
If Cmpcode.text = EncryptText(cmpcode.text & "_" & d,"yhkj","yhkj")