MD5是一种哈希函数,曾一度被认为是非常安全的,并且在国外被广泛运用。直到王小云教授的研究证明利用MD5算法的磕碰能够严重威胁信息体系安全,因此不得不做很多的重新思考。那么,MD5碰撞后时代,我们常用的MD5加密真的安全吗?
引言作为php开发人员,很长一段时间以来,很多人一直在使用md5哈希算法来保护密码数据并生成唯一的哈希算法。但是你应该或多或少听到过,md5不再安全了!PHP 5.5中有一些密码身份验证替代方案,即 sha1,password_hash?为什么被认为更安全?应该怎么选择?
首先说一下什么是MD5md5是根据公开的md5算法对人员信息进行数字变换后得到的一个128位的特征码,这个特征码是不可逆的,并且具有高度的离散性;md5码通常用于密码的加密存储、数字签名、文件完整性验证等。
2004年8月,美国加州国际密码大会。一位衣着简朴的中国妇女,面带微笑走上讲坛。用温和平静的声音,向世界宣布了MD5密码算法的破译结果。所有参会人员都呆住了,还没等人们反应过来。她又公开了HAVAL-128、MD4和RIPEMD的算法破解情况。
1992年美国推出全球无人可破解的密码—MD5,即使用最先进的计算机,也需要200年的时间才有可能破译,然而谁都没想到,仅仅过了12年,这个密码就被中国的一个女性破解,美国得知后直呼不可能,并迅速将其换成难度升级的SHA-1密码,结果6个月后密码再次被她攻破,而美国安全局那一刻如临大敌。
如果你是互联网公司的信息安全从业者,那么你可能会经常需要处理撞库事件,撞库是黑客的无聊“恶作剧”。撞库的根本原因是一些公司发生了信息泄露事件,而且泄露的数据没有加密或者加密方式比较弱,这样黑客就可以还原出原来的用户密码。