Php中md5函数与Linux中md5sum结果不同

来自牛奶河Wiki
阿奔讨论 | 贡献2023年1月3日 (二) 17:44的版本 (创建页面,内容为“ MySQL也有同样的问题,其md5函数算出来的值与Linux 的md5sum不同。 Linux中用 echo “123”| md5sum 或 md5sum 文件名(里面只有123)方式来计算的md5值,串中都有隐含的字符串终止符,所以并非只计算了”123”的md5值。 === 方法一 === 如果是字符串可以通过增加-n参数解决: echo -n “123”| md5sum ==== PHP ==== <?php    echo md5(‘123’); ?> ==== Linux ==== echo -n '123'|md5sum<…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索


MySQL也有同样的问题,其md5函数算出来的值与Linux 的md5sum不同。

Linux中用 echo “123”| md5sum 或 md5sum 文件名(里面只有123)方式来计算的md5值,串中都有隐含的字符串终止符,所以并非只计算了”123”的md5值。

方法一

如果是字符串可以通过增加-n参数解决:

echo -n “123”| md5sum

PHP

<?php

   echo md5(‘123’);

?>

Linux

echo -n '123'|md5sum

202cb962ac59075b964b07152d234b70

也可以在PHP或MySQL中增加回车符:

方法二

PHP

<?php

   echo md5(“123\n”);

?>

Linux

echo '123'|md5sum

ba1f2511fc30423bdbb183fe33f3dd0f