"openssl dgst -sha1" は、無関係な "(stdin)=" プレフィックスと末尾の改行文字を生成します。

Unixでこのコマンドを実行する場合

echo -n "foo" | openssl dgst -sha1

以下の結果が出力されます。

(stdin)= 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33

(次に改行文字が続きます)。

opensslがプレフィックスを表示せずに(stdin)=末尾の改行を避けるように強制する方法は?

ベストアンサー1

raw バイナリ形式は外部出力を追加しません。
出力は2進数で16進数に変換されます。

echo -n "foo" | openssl dgst -sha1 -binary | xxd -p

あなたにこれを与えるでしょう:

0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33

誰かがテキスト出力形式を再度変更することを決定した場合、この方法は将来も使用できます。ファイル入力のプレフィックスとの整合性を維持するために、「SHA1(stdin)=」プレフィックスを変更すると確信しています。

私は彼らがこれを変えたと信じることができません!どのくらいのスクリプトが壊れているのだろうか。

おすすめ記事