[英]Base64 + sha256 not giving expected result
我需要弄清楚为什么我得到错误的结果,这是东西:
预期结果
Mu0FBjARVsNyDiixnKqyLCCqVunTSPQFCMnOwGQsIWliY2Jh
当前结果
MzJlZDA1MDYzMDExNTZjMzcyMGUyOGIxOWNhYWIyMmMyMGFhNTZlOWQzNDhmNDA1MDhjOWNlYzA2NDJjMjE2OQ ==
我正在使用的代码(php)
echo base64_encode(hash("sha256", $pass.$salt'));
这个网站http://www.insidepro.com/hashes.php Giveme一个漂亮的结果
sha256($ pass。$ salt)=> Mu0FBjARVsNyDiixnKqyLCCqVunTSPQFCMnOwGQsIWk =
您可以在网站的结果字段附近找到[1],表示“哈希在Base64中”
问题是...我什至无法获得网站结果
编辑(谢谢乔恩)
现在代码像这样
echo base64_encode(hash("sha256", $pass.$salt', true));
我得到的结果与该网站相同
现在的问题是两个结果之间的差异
actual result : Mu0FBjARVsNyDiixnKqyLCCqVunTSPQFCMnOwGQsIWk=
expected result : Mu0FBjARVsNyDiixnKqyLCCqVunTSPQFCMnOwGQsIWliY2Jh
默认情况下, hash
返回其输出的十六进制编码字符串 ,而您期望它返回原始字节。 幸运的是,它接受了第三个论点。 像这样将其设置为true
:
echo base64_encode(hash("sha256", $pass.$salt', true));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.