从Linux命令行生成SHA-256哈希
我知道字符串“foobar”使用 但是命令行shell:从Linux命令行生成SHA-256哈希,linux,shell,sha256,Linux,Shell,Sha256,我知道字符串“foobar”使用 但是命令行shell: hendry@x201 ~$ echo foobar | sha256sum aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f - 生成不同的哈希。我缺少什么?echo通常会输出一个换行符,该换行符被-n抑制。试试这个: echo -n foobar | sha256sum 我相信,echo会输出一个尾随的换行符。尝试使用-n作为echo参数跳过换行符
hendry@x201 ~$ echo foobar | sha256sum
aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f -
生成不同的哈希。我缺少什么?
echo
通常会输出一个换行符,该换行符被-n
抑制。试试这个:
echo -n foobar | sha256sum
我相信,
echo
会输出一个尾随的换行符。尝试使用-n
作为echo参数跳过换行符。echo
生成一个尾随的换行符,该字符也经过哈希处理。尝试:
/bin/echo -n foobar | sha256sum
echo-n
可以正常工作,并且不太可能由于大量的历史使用而消失,但是根据的最新版本,“鼓励使用新的一致性应用程序”。如果命令sha256sum不可用(例如,在(Mavericks)上),您可以使用:
echo -n "foobar" | openssl dgst -sha256
echo-n“foobar”| shasum-a 256
如果您已经安装了openssl
,您可以使用:
echo -n "foobar" | openssl dgst -sha256
对于其他算法,您可以将
-sha256
替换为-md4
,-md5
,-ripemd160
,-sha
,-sha1
,-sha224
,-sha384
,-sha512
或-whirlpool
,对于base64中的sha256,请使用:
echo-n foo | openssl dgst-binary-sha256 | openssl base64
例子
echo-n foo | openssl dgst-binary-sha256 | openssl base64
C+7Hteo/D9vJXQ3UfzxbwnXaijM=
这个命令sha256sum
与Solaris中的摘要命令相同吗?注意:在OSX(BSD)上,它是echo-n foobar | shasum-a 256
在OSX上,创建别名可能很方便:别名sha256sum='shasum--algorithm 256'
为什么它以*-@PhilipRego结尾?这是stdin上输入的shasum,因此,不会打印文件名-
。sha256sum
。不需要。。。另请参见@koppor
与echo foobar
不同。echo foobar |
的等价物是sha256sum Nice!我已经将它添加到我的.bash_配置文件函数sha256(){echo-n“$*”| shasum-a256}中,并像这样调用:~$sha256 foobarOr,你是说?(没有“s”,特立独行)。它是在2010年发布的,而Mac OS X v10.9是在这个答案发布前一个月发布的。有没有办法指定您想要在sha512中使用的轮数?我看了看,找不到它,想知道你是否知道?@AlistairMacDonald-我不知道你到底在找什么。好了,SHA512需要80发子弹;如果你想操纵这个函数,它就不再是sha512了。顺便说一句,您可以在中搜索/询问您的问题。@masterxilo谢谢您的帮助,更正了。