关于MD5值的生成与还原

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:07:56
前几年MD5的解密一直是大家关注的问题,现在网上也陆续出现了还原MD5值的网站。他们大都说是穷举法去破解。我很纳闷,现在很多软件给用户加密用MD5算法,如果MD5值不能直接还原,那软件系统怎么去辨别密码?

MD5是一种不可逆的加密(散列)算法,只能加密,不能还原。
MD5用同一值加密的结果每次都一样,所以可以将用户的密码的MD5结果保存在数据库中。当用户登录时,将登陆时的密码MD5之后和数据库中的进行比对,如果相同就证明用户输入的密码正确。
MD5的值是可以碰撞的(两个不同值的MD5结果相同),但几率非常小。
不过好象有人已经发现了快速发现碰撞的方法,MD5已经不是牢不可破,不过尚未公开。
目前MD5破解的方法都是将很多字符穷举将其MD5值保存在一个大型数据库中,查找是依次比对。
防止自己的MD5值被穷举出来可以通过使用长且复杂的密码或者进行多次MD5

不需要还原,把你输入的密码进行MD5加密,加密后跟保存过的密码进行比较,不一样就表明原密码不一样

其实是利用了MD5加密的唯一性,就是不一样的数据用MD5加密后也一定不一样

因为现在的计算机技术无法使用穷猜法测试每一个数据,所以在概率上认为散列出来的数据是独一无二的。(如果要完成MD5原始数据的穷猜法测试或者找出相同指纹但不同明文的数据大概需要3亿年)