コマンドopenssl sha1 < /dev/null | wc --bytes
の実行後に出力が 50 になるのはなぜですか? SHA-1 の出力サイズは 160 ビットで、20 バイトになります。
1417 次
2 に答える
6
出力がopenssl sha1 < /dev/null | wc --bytes
50 になるのはなぜですか?
$ openssl sha1 < /dev/null
(stdin)= da39a3ee5e6b4b0d3255bfef95601890afd80709
20 バイトのダイジェストの前に が付けられ(stdin)=
、16 進数で表されるためです。
于 2012-06-20T13:08:01.740 に答える
2
生のフォーマットされていないバイトが必要な場合は、16進フォーマットの出力をOpenSSLからにパイプしてxxd -r -p
、その表現を生のバイトに変換します。
たとえば、文字列のBase64でエンコードされたSHA-1ダイジェストを作成するにはfoo
:
$ echo "foo" | openssl sha1 | xxd -r -p | base64
8dLS+STphqyG/fezbJS83zK+7BU=
または、単にメッセージの長さを検証するには:
$ echo "foo" | openssl sha1 | xxd -r -p | wc --bytes
20
于 2012-11-26T10:11:34.580 に答える