これがすでに回答されている場合、または回答が私が思っているよりも単純な場合はお詫びしますが、次のことを理解できないようです。
文字列からmd5を生成しようとすると、
echo -n "string" | md5sum | cut -f1 -d' '
または
echo -n "string" | openssl md5
結果は、私が予想するように32文字ではなく、33文字です(wc -c
を使用)。
では、いくつか質問があります。
よろしくお願いします。
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 %]