HMAC
次のコードを実行したときの出力として、正しいものを1つ選べ。
import hmac
h = hmac.new(b"k", b"msg", "sha256")
print(len(h.hexdigest()), h.digest_size)
- A
32 64 - B
64 32 - C
32 32 - D
64 64
正解と解説を見る
正解:B
HMAC は、秘密鍵とメッセージからメッセージ認証コードを作る。改ざんの検出や、API の署名に使う。16 進文字列の長さは、バイト数の 2 倍。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `import hmac` | — |
| 2 | `h = hmac.new(b"k", b"msg", "sha256")` | — |
| 3 | `print(len(h.hexdigest()), h.digest_size)` | — |
| 結果 | 実際の出力 | 64 32 |
- A
誤り。バイト数と 16 進文字列の長さが逆。
- B
正しい。SHA-256 の HMAC は 32 バイトで、16 進文字列では 64 文字。
- C
誤り。16 進文字列は、バイト数の 2 倍の長さ。
- D
誤り。バイト数は 32。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。