PythonとopensslコマンドでHMAC-SHA256を計算する

Pythonとopensslコマンドの2つの方法で、Helloという文字列のデータとsecretという秘密鍵からHMAC-SHA256を計算してみます。結果のバイナリはコンソールでは見づらいので、BASE64でテキストにしています。

Pythonで計算

import base64
import hashlib
import hmac

data = "Hello"
secret = "secret"
signature = hmac.new(secret.encode("utf-8"), data.encode("utf-8"), hashlib.sha256).digest()
print(base64.b64encode(signature).decode("utf-8"))
# => DMaS8hd7QrblzYJIjubF1SagB8Vx594f7AfB4rHfouI=

opensslコマンドで計算

opensslコマンドでの実行例

$ echo -n Hello | openssl dgst -binary -sha256 -hmac 'secret' | base64
DMaS8hd7QrblzYJIjubF1SagB8Vx594f7AfB4rHfouI=

計算結果が同じ値になることが確認できました。