MD5 小解

MD5为一字串哈希(摘要)算法,原理是:通过定长拆分原文,并进行二进制异或、与、非运算进行迭代,
最终获得一个128位散列摘要序列。128位二进制一般被转换成ascii码便于记录。

所谓的md5 16位是不存在的。网上说的16位仅仅是在md5 32位结果里面截取16位作为伪结果。
16位字串相对于32位产生碰撞的几率大几个数量级,但是在一个小系统里面这种概率还是很小的,因此可以使用16位作为一种散列算法结果使用。
换句话说,md5 本身也是在一个范围里面的不产生碰撞而已。对于广域,严格不产生碰撞是不可能的。

附加:
md5碰撞产生器:,王小云证明MD5数字签名算法可以产生碰撞
现有已经有相关的程序可以用于md5同步工具,用于产生两个相同的md5而内容不一样的文件。

不过由于这些算法仅仅是在正序逻辑上的,现在还没有看到逆序的算法,因此md5还是比较安全的(爆破就另当别论啦)

One Response

Leave a Reply