首页 > 建站教程 > 其他 >  生成和验证注册码的基本思路正文

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

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

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

基本思路

    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,主板,硬盘等信息获取不到注册表键值,也被认为是未注册状态。