OpenSSL和PHP SHA256摘要有所不同

时间:2015-08-02 15:15:33

标签: php openssl base64 sha256

我尝试使用OpenSSL和PHP在命令行计算某些JavaScript的base64编码sha256哈希值。

vector.remove(Integer.valueOf(28));

生成的base64编码值不相同,但每个方法的输入相同。退一步,sha256散列摘要在base64编码之前不匹配。

cat test.js | openssl dgst -sha256 -binary | openssl enc -base64
(p5CrWBV6O1Xp7BlWwdVXTeGeSx3uo/IsNaYOIOblAZk=)

echo base64_encode(hash("sha256", "alert('Test');", true));
(2D7QyY5W4ziVZhF/vzeGy8oHgnz4TjqaoifV41mHi3c=)

我不确定问题出在哪里。

2 个答案:

答案 0 :(得分:1)

由于Twitter上的一些支持,我最终发现了这个问题。

使用nano编辑JS文件时,最后会添加一个换行符。使用nano -L test.js编辑文件解决了问题。

答案 1 :(得分:0)

cat正在添加一个额外的换行符,这个字符在摘要中进行。尝试直接在文件上运行摘要:

openssl dgst -sha256 -binary test.js | ...