md5怎样用实现软件注册功能?急急急急急!!
我在做一个有注册验证保护的东西,我看到有的文章上写有如下内容:在软件的加密保护中,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加密后怎么回相同呢?
这些功能怎么实现呢?
请高手们赐教!!!不胜感激!! --------------------编程问答-------------------- 大家帮帮忙~~ --------------------编程问答-------------------- 我要做的东西分两部分,客户端和服务端,客户端将注册码发送给服务端,服务端生成激活码,发送给客户端,客户端验证后,正确则注册成功,错误则注册失败。怎么实现呢?
--------------------编程问答-------------------- 确切地说,是客户通过某种方式把注册码发给软件开发者 --------------------编程问答-------------------- MD5(StrName)=MD5(strRegNO)
当然不可能相等,你看哪个代码里是这样写的?
另外,
MD5(StrRegNO)=MD5(StrName)
和
MD5(StrName)=MD5(strRegNO)
有何区别? --------------------编程问答--------------------
补充:VB , 非技术类