我尝试使用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=)
我不确定问题出在哪里。
答案 0 :(得分:1)
由于Twitter上的一些支持,我最终发现了这个问题。
使用nano编辑JS文件时,最后会添加一个换行符。使用nano -L test.js
编辑文件解决了问题。
答案 1 :(得分:0)
cat
正在添加一个额外的换行符,这个字符在摘要中进行。尝试直接在文件上运行摘要:
openssl dgst -sha256 -binary test.js | ...