生成和验证注册码的基本思路

大多数情况下,我们开发一款小软件,都会有如下需求:

想限制试用版的使用次数。并且当注册后,怎样才能一个注册码对应唯一一台电脑,不能重复使用注册码,在不同电脑上注册。

 

基本思路

1.当程序首次运行时,在注册表中新建一个键,如limit,键值则存放一个数字,用于限制试用版的使用次数,试用程序用一次则递减一次,注册过的程序不需要检查这个值。


2. 如果生成注册码的要求不是非常严格,可以随机生成数字加字母组合的字符串,通过正则进行匹配,如[0-9]{2}[A-Z]{3}-[0-9]{3} [A-Z]{2}-WYEU0-8989P。生成后放注册表,如,键SequenceNumber,值就是生成的注册码。


3.为了能在不同电脑上注册, 用ManagementObjectSearcher取cpu,主板,硬盘等信息,生成一个字符串,做为一个注册表新键,键值则是放入进行对称或不对称加密了的注册码。


4. 做验证时,通过cpu,主板,硬盘等信息获取加密了注册码的值,再将其解密,通过与SequenceNumber里的注册码进行比较后,如果发现相等,则 验证通过,否则不通过。最后用正则[0-9]{2}[A-Z]{3}-[0-9]{3}[A-Z]{2}-WYEU0-8989P对注册码进行匹配,匹配 成功则通过,失败则不通过。另外,通过cpu,主板,硬盘等信息获取不到注册表键值,也被认为是未注册状态。

posted @ 2012-06-09 12:30  铁芒阁  阅读(1974)  评论(5编辑  收藏  举报
分享到: