最好的语言PHP|PHP无法忽视的md5加密漏洞

我们先看一段代码:

md5($str1), 'md5_str2' => md5($str2), 'bool' => md5($str1) == md5($str2) ]);

结果如下:
{ md5_str1: "0e545993274517709034328855841020", md5_str2: "0e848240448830537924465865611904", bool: true }

  • 我们发现竟然两个字符串 其实不相等,但是 md5 后的结果 却是相等 的
  • 这是因为,当 md5 后加密的字符串,前面是 0e 的话,其实都是返回0
解决方法一:加盐值

解决方法二:双重md5

【最好的语言PHP|PHP无法忽视的md5加密漏洞】

    推荐阅读