HMAC (Hash-based Message Authentication Code) là cơ chế dùng hàm băm để tạo mã xác thực thông điệp, đảm bảo cả tính toàn vẹn lẫn xác thực nguồn gốc. Trong bài này, bạn cài đặt HMAC-SHA256 thủ công theo chuẩn RFC 2104 (không được dùng thư viện hmac có sẵn, chỉ dùng hashlib.sha256).
SHA-256 có kích thước khối B=64 byte. Cho khóa key và thông điệp message (chuỗi UTF-8), thuật toán như sau:
key (tính theo byte UTF-8) lớn hơn B, thay key bằng SHA256(key) (32 byte).0x00 vào cuối key cho đủ đúng B=64 byte, gọi kết quả là K.trong đó ∥ là nối byte.
Hãy in ra giá trị HMAC-SHA256 dạng hex.
Ví dụ: key = "key", message = "The quick brown fox jumps over the lazy dog" cho kết quả HMAC-SHA256 chuẩn, có thể kiểm chứng bằng thư viện hmac của Python (kết quả phải trùng khớp).
key (có thể rỗng, có thể dài hơn 64 byte).message (có thể rỗng).In ra duy nhất một dòng: giá trị HMAC-SHA256 dạng chuỗi hex 64 ký tự thường.
Ví dụ:
Đầu vào:
Đầu ra:
b613679a0814d9ec772f95d778c35fc5ff1697c493715653c6c712144292c5ad
Đầu vào:
key
The quick brown fox jumps over the lazy dog
Đầu ra:
f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
Đang tải editor...