Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何实现30天的试用期?_C# - Fatal编程技术网

C# 如何实现30天的试用期?

C# 如何实现30天的试用期?,c#,C#,我想实现试用30天的功能 我使用了注册表项,但很容易被破解 有什么好主意吗?我认为现在最安全的方法是使用Web服务。但是,请记住,如果您的应用程序值得,那么无论您花多少时间保护它,它都会被破解 这个想法很简单:如果没有一个特定的键,这个应用程序根本无法工作。当密钥不存在时,它会尝试联系Web服务。当它启动时,应用程序会收到一个“临时令牌”(存储“激活”的时间戳) 它将使用此令牌计算剩余天数 如果您删除令牌,应用程序会认为这是您第一次运行它并尝试连接到Web服务。应用程序发送的新令牌请求将包含与第

我想实现试用30天的功能

我使用了注册表项,但很容易被破解


有什么好主意吗?

我认为现在最安全的方法是使用Web服务。但是,请记住,如果您的应用程序值得,那么无论您花多少时间保护它,它都会被破解

这个想法很简单:如果没有一个特定的键,这个应用程序根本无法工作。当密钥不存在时,它会尝试联系Web服务。当它启动时,应用程序会收到一个“临时令牌”(存储“激活”的时间戳)

它将使用此令牌计算剩余天数

如果您删除令牌,应用程序会认为这是您第一次运行它并尝试连接到Web服务。应用程序发送的新令牌请求将包含与第一次相同的信息,并且不会生成令牌:应用程序将显示一条关于您的试用期到期的消息

另一方面,您可以尝试破解令牌,但它应该不是那么简单(即使它当然是可能的)

然后,破解者会找到一种生成令牌的方法(自动生成或由Web服务向其发送不同的应用程序凭据),或者跳过对已计算日期的控制(例如,
如果数据过期,则过期其他ok
将变为
如果数据过期,则ok其他ok

同样的想法也可以在没有webservice的情况下使用:安装程序时,会添加密钥。如果删除它,程序将无法运行。密钥的内容是加密的,因此您不应该轻易地用另一个时间戳生成它

基本概念是密钥的内容必须加密,并且密钥必须存在,程序才能工作。然后,有兴趣超过试用期的用户必须破解应用程序中的加密算法。

重复各种操作,包括