【Python】Python ~ HMAC ~

■ はじめに

https://dk521123.hatenablog.com/entry/2022/10/05/095506

で、HMACについて扱ったので、
今回は、Pythonで実装してみる。

目次

【1】Python での HMAC の実装
【2】サンプル

【1】Python での HMAC の実装

* すでに標準で以下のHMACライブラリが用意されている

https://docs.python.org/ja/3/library/hmac.html

【2】サンプル

import hmac
import hashlib
import secrets

secret_key = "secret-key"
message = "Hello World!!!"

target_hmac = hmac.new(
  bytes(secret_key, 'UTF-8'),
  bytes(message, 'UTF-8'),
  hashlib.sha1
)
mac_value = target_hmac.hexdigest()
print(mac_value)

# secretsを使ってちゃんとした秘密鍵を生成
secret_key2 = secrets.token_bytes(32)
target_hmac2 = hmac.new(
  secret_key2,
  bytes(message, 'UTF-8'),
  hashlib.sha256
)
mac_value2 = target_hmac2.hexdigest()
print(mac_value2)

出力結果

c9f7215c12b7b02a7fee041447232346733f5f78
99efaaf6f983542402cf74449ac1d0c4608dfcb43c1c70f5e4e3f7d2f29f062e

関連記事

メッセージ認証コード ~ MAC / HMAC ~
https://dk521123.hatenablog.com/entry/2022/10/05/095506
Python ~ ハッシュ / hashlib ~
https://dk521123.hatenablog.com/entry/2020/05/03/010502
Pythonで セキュアなランダム文字列生成を考える
https://dk521123.hatenablog.com/entry/2021/11/29/110408
Python ~ 基本編 / 文字列 ~
https://dk521123.hatenablog.com/entry/2019/10/12/075251
Python ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2014/08/07/231242