HMAC в Python: генерация безопасных кодов аутентификации сообщений на основе хэша

В Python функции HMAC (код аутентификации сообщения на основе хэша) используются для генерации безопасных кодов аутентификации сообщений на основе хэша. HMAC обеспечивает целостность и подлинность сообщения, используя криптографическую хэш-функцию в сочетании с секретным ключом.

Вот несколько способов работы с HMAC в Python:

Метод 1. Использование модуля hmac:

import hmac
import hashlib
message = b"Hello, World!"
key = b"SecretKey"
hmac_hash = hmac.new(key, message, hashlib.sha256).hexdigest()
print(hmac_hash)

Метод 2. Использование модуля hashlib:

import hashlib
message = b"Hello, World!"
key = b"SecretKey"
hmac_hash = hashlib.new("sha256", key + message).hexdigest()
print(hmac_hash)

Метод 3. Использование функции hmac.compare_digest:

import hmac
import hashlib
message = b"Hello, World!"
key = b"SecretKey"
digest = hmac.new(key, message, hashlib.sha256).digest()
# Compare the digest using hmac.compare_digest to mitigate timing attacks
if hmac.compare_digest(digest, hmac.new(key, message, hashlib.sha256).digest()):
    print("Digests match!")
else:
    print("Digests do not match.")

Метод 4. Использование пользовательской функции:

import hashlib
def generate_hmac(key, message):
    sha256_hash = hashlib.sha256(key + message).hexdigest()
    return sha256_hash
message = b"Hello, World!"
key = b"SecretKey"
hmac_hash = generate_hmac(key, message)
print(hmac_hash)