В 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)