如何解码密码:$ password = md5(addslashes($ _POST ['password']));

时间:2015-04-21 19:08:34

标签: php cryptography passwords md5

作为标题,请告诉我如何解码由此编码的密码字符串:

  

$ password = md5(addslashes($ _POST ['password']));

例如:f21601fea7f496cfbc23f7310e13f941

谢谢!

1 个答案:

答案 0 :(得分:2)

MD5是单向hashing algorithm。这种算法的本质是它无法逆转。它可以,它是一种加密算法,而不是散列。

在切换到加密算法之前,不要。如果可能,密码应始终存储为哈希值(存在异常情况,例如您为第三方系统存储密码的位置)。如果您的代码/数据库遭到入侵,这可以保护您的用户。

对于简单字符串,可以在“彩虹表”中查找MD5哈希。例如,可以将098f6bcd4621d373cade4e832627b4f6放入http://md5cracker.org/之类的工具中,以找出密码可能 test(但它可能是另一个字符串,导致相同的哈希,称为a collision)。

注意: MD5也是insecure,因为您可以生成彩虹表的速度。在散列密码时,您应该使用PHP的内置password_hash / password_verify函数,因为它们利用了安全的bcrypt散列算法。