Generating a sha256 from the Linux command line [closed]

徘徊边缘 提交于 2019-11-26 23:47:10

问题


I know the string "foobar" generates the SHA 256 hash c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2 using http://hash.online-convert.com/sha256-generator

However the command line shell:

hendry@x201 ~$ echo foobar | sha256sum 
aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f  -

Generates a different hash. What am I missing?


回答1:


echo will normally output a newline, which is suppressed with -n. Try this:

echo -n foobar | sha256sum



回答2:


If you have installed openssl, you can use:

echo -n "foobar" | openssl dgst -sha256

For other algorithms you can replace -sha256 with -md4, -md5, -ripemd160, -sha, -sha1, -sha224, -sha384, -sha512 or -whirlpool.




回答3:


If the command sha256sum is not available (on mavericks for example), you can use :

echo -n "foobar" | shasum -a 256




回答4:


echo -n works and is unlikely to ever disappear due to massive historical usage, however per recent versions of the POSIX standard, new conforming applications are "encouraged to use printf".




回答5:


echo produces a trailing newline character which is hashed too. try:

/bin/echo -n foobar | sha256sum 



回答6:


I believe that echo outputs a trailing newline. Try using -n as a parameter to echo to skip the newline.



来源:https://stackoverflow.com/questions/3358420/generating-a-sha256-from-the-linux-command-line

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!