作为标题,请告诉我如何解码由此编码的密码字符串:
$ password = md5(addslashes($ _POST ['password']));
例如:f21601fea7f496cfbc23f7310e13f941
谢谢!
答案 0 :(得分:2)
MD5是单向hashing algorithm。这种算法的本质是它无法逆转。它可以,它是一种加密算法,而不是散列。
在切换到加密算法之前,不要。如果可能,密码应始终存储为哈希值(存在异常情况,例如您为第三方系统存储密码的位置)。如果您的代码/数据库遭到入侵,这可以保护您的用户。
对于简单字符串,可以在“彩虹表”中查找MD5哈希。例如,可以将098f6bcd4621d373cade4e832627b4f6
放入http://md5cracker.org/之类的工具中,以找出密码可能 test
(但它可能是另一个字符串,导致相同的哈希,称为a collision)。
注意: MD5也是insecure,因为您可以生成彩虹表的速度。在散列密码时,您应该使用PHP的内置password_hash
/ password_verify
函数,因为它们利用了安全的bcrypt
散列算法。