我在做一个有注册验证保护的东西,我看到有的文章上写有如下内容:
在软件的加密保护中,MD5是一个经常会被用到的加密算法,但是由于MD5算法为不可逆算法,所以所有的软件都只能使用MD5算法作为一个加密的中间步骤,比如对用户名做一个MD5变换,结果再进行一个可逆的加密变换,变换结果为注册码。而做注册机时也必须先用MD5进行加密转换,然后再用第二个算法的逆算法进行演变,得出原始的用户名。具体来说:我们设用户名为StrName,注册码为StrRegNO,那么如果哪一位共享软件的作者采用如下算法作为他自己软件的注册算法:‘If MD5(StrName)=MD5(strRegNO) then "register successful" Else "register unsuccessful " ’那么对于Cracker来说只要可以看出软件采用了MD5算法就可以写出注册机了,但是如果作者采用如下算法:‘If MD5(StrRegNO)=MD5(StrName) Then "register successful" Else "register unsuccessful " ’的话,那么我想连共享软件作者自己也必须通过穷举法才可以求出注册用户的序列号了。
可是我不明白,二者的初始值不同,用md5加密后怎么回相同呢?
这些功能怎么实现呢?
请高手们赐教!!!不胜感激!!
解决方案 »
- vb打印字体显示黑体加粗怎么设置
- 如何判断2个日期的前后?用VB的Date
- 初学者求救!关于MSMSflexGrid数据传递到datareport报表中来!在线等!
- 关于DCOM在局域网里面碰到“远程服务器不存在或不能使用”的问题请教
- 在VB上实现屏幕取词技术!利用DLL实现,50玩出售,有购者联系我QQ:28290994
- 关于VB的一点小疑问,送分......
- 原来从没有接触过VB但C用的不少,想学习一下VB请各位推荐几本书,谢谢
- 如何使MSCOMM控件能支持大于16的端口?(或用API或其他方法)
- 请教:我用VBA获取的网页链接的herf是空字符串,怎么办?
- 怎么做安装程序能copy文件的安装程序
- 有挑战的算法问题?使用VB处理实再是难事...
- 求助了!一个数据库的问题!
比如说,一个特定的md5算法使得无论多长的内容哈希之后都会变成了32个字节长,那么可以确定的是,所有内容通过这一算法加密之后,都只会得到16^32种结果。因此,必然存在一种以上不同的内容,它们通过这一算法得到的哈希值是相同的。