取任意长度的消息,生成一个固定长度的散列值,或者叫做摘要。哈希函数的实现都是公开的,它广泛应用于文件完整性检测、数字签名中。登录密码也有用到哈希函数,一般网站在数据库中不是直接存储的用户密码,而是密码的哈希值,这样即使数据库暴露,攻击者仍然是不知道密码的明文的。

这要求Hash函数拥有以下特性:一是单向性,即不可逆性,我们无法从哈希值反过来得到原文。二是冲突碰撞抵御能力,即找到两个不同的消息原文,他们的哈希值相同,这在计算上不可行。

实际上,MD5已经不再安全。在2005年,我国山东大学王小云教授成功破解MD5算法,使得使用普通电脑在数小时内即可找到哈希碰撞,这在国际密码学领域引发地震。 更多 >