软件注册
本人,正在写一个软件注册的过程,需要生以下效果
"注册码 "+硬盘的ID = 20 (20,21,22这些数字,需要根据不同的 "注册码 "而产生)
请问,在知道数字为 "20 "和硬盘ID时,怎样生成 "注册码 "
[解决办法]
我的思路是 读取CPU的编号,再进行MD5转换(MD5的每位值都已做相应修改确保一般的字典套不出来),这样生成的注册码虽然不能说是100%唯一的,可是基本上找不出重复的,并且还不可逆转,个人认为CPU换的频率比硬盘换的频率要低,所以CPU来做基数会更好一点.
目前得到的MD5码仅仅是机器码,你可以自己再编一个程序,来将他转换为注册码,可以再来一次MD5,或位移等等要多复杂有多复杂的操作,可逆不可逆都无所谓,得到的才是注册码
注册的时候,只需要别人告诉你经过MD5转换得到的机器码,你再用程序算出注册码给他,而他在注册的时候,不需要将注册码解密转换为机器码进行比较,可以直接将他的机器码按照你的算法转换为注册码后,与他输入的注册码进行比较就可以了,所以为了防止被破解出来机器码转注册码的算法,算法一定要非常复杂才可以.
我的习惯是: CPU编号 ===MD5加密===> 机器码 ===[MD5加密-左移1位-MD5加密-右移1位-MD5加密-左移2位-MD5加密-右移2位-MD5加密.....直到没有花样可以变了]===> 注册码
此时的机器码基本上已经面目全非了,基本上暴力破解是破解不出来的啦.机器码可以短一点,8位的MD5就差不多了,而注册码一定要长,我就是32位...