加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 17:47:48 所属栏目:PHP教程 来源:网络整理
导读:尝试使用bash命令和 PHP的hash()函数生成哈希时,我得到了不同的结果.我查看了之前的问题,最常见的问题是字符串中隐藏了一个新行或其他字符,但是我在实际字符串而不是文件上运行函数,所以这不是问题. 例如: 击: md5sum您好:b1946ac92492d2347c6235b4d26111
尝试使用bash命令和 PHP的hash()函数生成哈希时,我得到了不同的结果.我查看了之前的问题,最常见的问题是字符串中隐藏了一个新行或其他字符,但是我在实际字符串而不是文件上运行函数,所以这不是问题.

例如:

击:

md5sum<<<您好:b1946ac92492d2347c6235b4d2611184 sha256sum<<<您好:5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03 PHP的hash()函数: hash(‘md5′,’hello’):9dd4e461268c8034f5c8564e155c67a6 hash(‘sha256′,’hello’):2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 我在这里错过了什么?为什么价值不同?

解决方法

因为md5sum在对其进行散列之前会在输入中附加换行符

PHP等价物是:

echo hash('md5',"hellon");

这将生成b1946ac92492d2347c6235b4d2611184,其值相同

md5sum <<< hello

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

echo -n hello | md5sum

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读