首页 文章

从Linux命令行生成sha256 [关闭]

提问于
浏览
177

我知道字符串"foobar"使用http://hash.online-convert.com/sha256-generator生成SHA 256哈希 c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2

但是命令行shell:

hendry@x201 ~$ echo foobar | sha256sum 
aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f  -

生成不同的哈希 . 我错过了什么?

6 回答

  • 27

    由于大量的历史使用, echo -n 起作用并且不太可能消失,但是根据the POSIX standard的最新版本,新的合规应用程序“鼓励使用printf” .

  • 39

    如果您已安装 openssl ,则可以使用:

    echo -n "foobar" | openssl dgst -sha256
    

    对于其他算法,您可以将 -md4-md5-ripemd160-sha-sha1-sha224-sha384-sha512-whirlpool 替换为 -sha256 .

  • 66

    如果命令sha256sum不可用(例如,在特立独行者上),您可以使用:

    echo -n "foobar" | shasum -a 256

  • 260

    echo 通常会输出换行符,该换行符由 -n 抑制 . 试试这个:

    echo -n foobar | sha256sum
    
  • 7

    echo产生一个尾随的换行符,也是经过哈希处理的 . 尝试:

    /bin/echo -n foobar | sha256sum
    
  • 7

    我相信 echo 会输出一个尾随的换行符 . 尝试使用 -n 作为参数来回显以跳过换行符 .

相关问题