gpt4 book ai didi

PHP 和 bash 返回不同的哈希结果

转载 作者:可可西里 更新时间:2023-10-31 22:11:16 25 4
gpt4 key购买 nike

尝试使用 bash 命令和 PHP 的 hash() 函数生成散列时,我得到了不同的结果。我查看了之前的问题,最常见的问题是字符串中隐藏了换行符或其他一些字符,但是我在实际字符串而不是文件上运行这些函数,所以这不是问题所在。

例如:

bash :

md5sum <<< hello : b1946ac92492d2347c6235b4d2611184

sha256sum <<< hello : 5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03

PHP 的 hash() 函数:

hash('md5', 'hello') : 9dd4e461268c8034f5c8564e155c67a6

hash('sha256', 'hello') : 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

我在这里错过了什么?为什么值不同?

最佳答案

因为 md5sum 在散列之前向您的输入附加了一个换行符

PHP 等价物是:

echo hash('md5', "hello\n");

这将生成b1946ac92492d2347c6235b4d2611184,与

的值相同
md5sum <<< hello

如果您想禁止换行符包含在 bash 生成的哈希中,请使用

echo -n hello | md5sum 

关于PHP 和 bash 返回不同的哈希结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26015239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com