我有程序,我需要限制它。但我不知道最好的方式。当我运行程序时,我要求注册密钥和用户名。然后选择username+somestring+DateTime.Now
。将其转换为哈希并将其与密钥进行比较。如果true
,则使用用户名和密钥保存在AppData
文件中。并且在运行程序时也会这样做。并从此字符串获取日期。如果DateTime.Now.Day != DateFromString.Day
则false
。但如果用户删除此文件并更改时间然后注册...他可以打开它。
为一天添加限制的最佳方法是什么?
提前致谢。
答案 0 :(得分:1)
如果你给你的用户一些软件来检查计算机自己的时钟,那么通过更改时钟就可以轻易地欺骗它。
稍微好一点的是让您的程序通过服务器进行身份验证。但是,您的用户将需要互联网访问才能使用您的程序。并且熟练的用户仍然可以更改程序以跳过检查。
如果您为用户提供某些软件,那么您无法100%可靠地阻止他们修改并运行它。
答案 1 :(得分:1)
您需要以独特的方式识别已安装程序的机器 请查看此问题中的best voted answer 使用密钥加密获取的字符串并将其发送到您可以控制的Web服务。
webservice在数据库中注册带有首次运行数据的加密字符串 在下一次运行程序时,再次将相同的加密字符串发送到Web服务 webservice检查数据库的字符串和日期,并发回结果。
这不是你问题的绝对解决方法,可能会被愚弄 至少这需要一台不同的机器,虚假的网络服务或代码破解。