hen*_*dry 215 linux shell sha256
我知道字符串"foobar" c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2
使用
http://hash.online-convert.com/sha256-generator生成SHA 256哈希
但是命令行shell:
hendry@x201 ~$ echo foobar | sha256sum
aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f -
Run Code Online (Sandbox Code Playgroud)
生成不同的哈希.我错过了什么?
mvd*_*vds 327
echo
通常会输出一个换行符,该换行符被抑制-n
.试试这个:
echo -n foobar | sha256sum
Run Code Online (Sandbox Code Playgroud)
Far*_*and 90
如果已安装openssl
,则可以使用:
echo -n "foobar" | openssl dgst -sha256
Run Code Online (Sandbox Code Playgroud)
对于其他算法可以替换-sha256
使用-md4
,-md5
,-ripemd160
,-sha
,-sha1
,-sha224
,-sha384
,-sha512
或-whirlpool
.
Suc*_*oir 43
如果命令sha256sum不可用(例如,在特立独行者上),您可以使用:
echo -n "foobar" | shasum -a 256
use*_*745 17
对于base64中的sha256哈希,请使用:
echo -n foo | openssl dgst -binary -sha256 | openssl base64
Run Code Online (Sandbox Code Playgroud)
echo -n foo | openssl dgst -binary -sha256 | openssl base64
C+7Hteo/D9vJXQ3UfzxbwnXaijM=
Run Code Online (Sandbox Code Playgroud)
hev*_*ev1 14
使用printf
而不是echo
避免添加额外的换行符。
printf foobar | sha256sum
Run Code Online (Sandbox Code Playgroud)
对于任意字符串,%s
应使用格式说明符。
printf '%s' 'somestring' | sha256sum
Run Code Online (Sandbox Code Playgroud)
echo产生一个尾随的换行符,也是经过哈希处理的.尝试:
/bin/echo -n foobar | sha256sum
Run Code Online (Sandbox Code Playgroud)