天天看点

推荐+1置顶+1(分享、讨论、实现)通用软件注册功能之建立有效的软件保护机制

推荐+1置顶+1(分享、讨论、实现)

通用软件注册功能之建立有效的软件保护机制

         众所周知,一些共享软件往往提供给使用者的是一个功能不受限制的限时使用版,在试用期内使用者可以无限制的使用软件的全部功能(只是可能会出现提示使用者注册的窗口),试用期一过部分(或全部)功能失效,要想继续使用只能向作者索取注册码(或注册文件)完成对软件的合法注册,注册后的软件将解除一切使用限制。如果您也开发出一个有价值的作品,是否也希望为自己的软件增加一个这样的功能呢?当前对于.NET反编译的问题不在本文讨论之内,相关文章已经很多!本文我们就一起探讨软件注册功能的实现。

       实现软件的注册功能方法很多,最需要考虑的就是不能轻易的让使用者破解,在这里,我就谈谈“.NET快速开发整合框架(RDIFramework.NET)”中平台注册功能的实现方法。在RDIFramework.NET中,注册功能主要方法就是对计算机唯一硬件信息进行RSA数字签名达到软件注册和保护的功能,该方法实现简单,安全性相应较高。

       计算机唯一硬件信息(我们知道计算机中的关键部件如CPU,主板等在全球范围内都有一个独一无二的产品序列号,用户通过注册模块获取这些产品序列号(即传统所说的:机器吗)并将它发送给软件开发商要求进行RSA数据签名,软件开发商获得这些机器码后利用手中的私钥对这些信息进行RSA数字签名,生成的签名信息(即注册码)发回给用户,用户将收到的注册码输入注册模块的注册码框,软件即可利用公钥执行签名验证,如果输入的注册码被证明就是经过开发商数字签名的机器码,则完成注册过程。

       注册功能项目结构图如下所示:

推荐+1置顶+1(分享、讨论、实现)通用软件注册功能之建立有效的软件保护机制

图1 注册功能项目结构

平台服务端注册码生成主界面如下所示:

推荐+1置顶+1(分享、讨论、实现)通用软件注册功能之建立有效的软件保护机制

图2 注册文件管理器

通过“注册文件管理器”,我们就可以根据用户提供的信息来生成软件的注册文件。

客户端的注册主要就是根据我们提供的注册文件与公钥,来验证注册文件是否为当前客户的有效注册文件,如果有效,注册成功,无效则注册失败!客户端注册功能设计参考如下所示:

推荐+1置顶+1(分享、讨论、实现)通用软件注册功能之建立有效的软件保护机制

图3 平台注册

用户单击“注册”按钮,成功注册提示:

推荐+1置顶+1(分享、讨论、实现)通用软件注册功能之建立有效的软件保护机制

图4注册成功

服务端注册码生成核心代码:

一、     生成公/私钥文件:

二、     生成注册文件:

三、     验证注册文件:

至此,软件的注册功能就完成了,当然还有其他很多方法,比如:

本文转自yonghu86 51CTO博客,原文链接:http://blog.51cto.com/yonghu/1321315,如需转载请自行联系原作者

继续阅读