Skip to content

Latest commit

 

History

History
44 lines (33 loc) · 1.2 KB

hmac-sha1-by-openssl.md

File metadata and controls

44 lines (33 loc) · 1.2 KB

OpensslでHMAC-SHA1ハッシュ化

echo "value" | openssl dgst -sha1 -hmac

ハッシュ部分だけを取り出す場合、cutコマンドなどを使う。

echo "value" | openssl dgst -sha1 -hmac | cut -d" " -f2

キーを与えることができる

echo "value" | openssl dgst -sha1 -hmac $keyString

改行の有無でハッシュ値は変わる

echo "value" | openssl dgst -sha1 -hmac
# (stdin)= 2b3b7f6975d8f776754212874dbc38b271087b50
echo -n "value" | openssl dgst -sha1 -hmac
# (stdin)= f32b67c7e26342af42efabc674d441dca0a281c5

実はバイナリ状にハッシュを生成していて、16進数の数字として表現してくれている。 -binaryオプションを付けることでバイナリ状の値を出力する。

echo -n "value" | openssl dgst -sha1 -hmac
# (stdin)= f32b67c7e26342af42efabc674d441dca0a281c5
echo -n "value" | openssl dgst -binary -sha1 -hmac | hexdump -C
# 00000000  f3 2b 67 c7 e2 63 42 af  42 ef ab c6 74 d4 41 dc  |.+g..cB.B...t.A.|
# 00000010  a0 a2 81 c5

バイナリ状のハッシュをbase64にする例。

echo -n "value" | openssl dgst -binary -sha1 -hmac | base64
# 8ytnx+JjQq9C76vGdNRB3KCigcU=