この質問に既に回答があった場合、または回答が思ったより簡単であればお詫び申し上げます。しかし、次の内容を理解できないようです。
文字列からmd5を生成しようとしたときに使用できます。
echo -n "string" | md5sum | cut -f1 -d' '
または
echo -n "string" | openssl md5
結果は、私が予想した32文字ではなく33文字(使用済みwc -c
)です。
だからいくつかの質問があります。
- md5sumとopensslの両方に末尾のスペースを追加するのはなぜですか?
- 改行や空白なしでmd5ハッシュを生成する他の方法はありますか?
- 末尾のスペースは本当に重要ですか?
みんなありがとうございます。
答え1
32文字です!md5sum
最後に改行文字を追加します。次のように削除できます。
% echo -n string | md5sum|awk '{print $1}'|wc -c
33
% echo -n $(echo -n string | md5sum|awk '{print $1}')|wc -c
32
またはこれを行うこともできます:
% echo -n $(md5sum <<< 'string'|awk '{print $1}')|wc -c
32
32文字の文字列が独自の行に表示されるため、コマンドの1つが改行文字を追加するタイミングを知ることができます。改行文字がない場合は、常に次のように表示する必要があります。
[prompt %] echo -n $(md5sum <<< 'string'|awk '{print $1}')
b80fa55b1234f1935cea559d9efbc39a[prompt %]