试图弄清楚为什么我的base64 sha1不同。
我得到了
密码'a'结果'hvfkN / qlp / zhXR3cuerq6jd2Z7g ='
使用我的java函数时。我可以使用一些随机的在线工具来验证。
但是当我尝试使用命令行和openssl
进行验证时echo a | openssl dgst -binary -sha1 | openssl base64
我得到了
P3hoUOOHVQ / auDbtfm3Igd4jABs =
那也许是utf8 / bash的事情,所以我试过
echo 'a' | iconv --from-code=ISO-8859-1 --to-code=UTF-8 | openssl dgst -binary -sha1 | openssl base64
同样的结果。
我错过了什么?
编辑:
验证原始结果的网站 http://www.tools4noobs.com/online_php_functions/sha1/计算hex sha1
86f7e437faa5a7fce15d1ddcb9eaeaea377667b8
将hex转换为base64 http://tomeko.net/online_tools/hex_to_base64.php?lang=en
hvfkN / QLP / zhXR3cuerq6jd2Z7g =
答案 0 :(得分:2)
echo
附加换行符,该换行符将包含在摘要计算中;请尝试printf
。还要警惕管道的其他部分添加无关的换行符或其他字符。