Generating a SHA-256 hash from the Linux command line

前端 未结 7 1426
孤城傲影
孤城傲影 2020-12-07 07:37

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

相关标签:
7条回答
  • 2020-12-07 08:09

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

    echo -n foobar | sha256sum
    
    0 讨论(0)
  • 2020-12-07 08:10

    For the sha256 hash in base64, use:

    echo -n foo | openssl dgst -binary -sha1 | openssl base64
    

    Example

    echo -n foo | openssl dgst -binary -sha1 | openssl base64
    C+7Hteo/D9vJXQ3UfzxbwnXaijM=
    
    0 讨论(0)
  • 2020-12-07 08:12

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

    0 讨论(0)
  • 2020-12-07 08:16

    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.

    0 讨论(0)
  • 2020-12-07 08:22

    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".

    0 讨论(0)
  • 2020-12-07 08:32

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

    /bin/echo -n foobar | sha256sum 
    
    0 讨论(0)
提交回复
热议问题