Генератор HMAC
Генерирует подписи HMAC с использованием SHA-256/384/512 из сообщения и секретного ключа.
Об этом инструменте
HMAC (код аутентификации сообщения на основе хеша) — это криптографическая техника, используемая для проверки целостности и подлинности данных при передаче или хранении. Путем объединения секретного ключа с сообщением HMAC создает уникальную подпись, которая доказывает, что данные не были изменены и что только тот, кто обладает секретным ключом, мог её создать. Это делает HMAC необходимым для защиты API, валидации вебхуков, подписания учетных данных и защиты конфиденциальных коммуникаций в Интернете.
Чтобы использовать этот инструмент, введите ваше сообщение в текстовое поле и предоставьте секретный ключ, который вы разделяете с получателем. Выберите алгоритм хеширования (SHA-256, SHA-384 или SHA-512) в зависимости от ваших требований безопасности, затем нажмите «Создать HMAC» для генерации подписи. Полученный хеш можно отправить вместе с вашими данными, чтобы получатель мог проверить подлинность, создав тот же HMAC со своей копией секретного ключа.
HMAC широко используется процессорами платежей, облачными API (AWS, Google Cloud, Stripe) и системами связи в реальном времени для предотвращения подделок и подтверждения источника сообщения. Вариант SHA-256 обеспечивает сильную безопасность для большинства случаев использования, в то время как SHA-384 и SHA-512 предлагают дополнительный запас безопасности для высокочувствительных приложений. Помните, что безопасность HMAC полностью зависит от сохранения конфиденциальности вашего секретного ключа — никогда не делитесь им по незащищённым каналам.
Часто задаваемые вопросы
Реализация кода
import hmac
import hashlib
import base64
import secrets
# Generate HMAC-SHA256
key = secrets.token_bytes(32) # 256-bit random key
message = "Hello, World!"
# Raw hex output
mac = hmac.new(key, message.encode(), hashlib.sha256)
print("HMAC-SHA256 (hex):", mac.hexdigest())
# Base64 output (common for API signatures)
mac_b64 = base64.b64encode(mac.digest()).decode()
print("HMAC-SHA256 (b64):", mac_b64)
# HMAC-SHA512
mac512 = hmac.new(key, message.encode(), hashlib.sha512)
print("HMAC-SHA512 (hex):", mac512.hexdigest())
# Constant-time verification (prevents timing attacks)
def verify_hmac(key: bytes, message: str, expected: str) -> bool:
computed = hmac.new(key, message.encode(), hashlib.sha256).hexdigest()
return hmac.compare_digest(computed, expected)
signature = mac.hexdigest()
print("Valid: ", verify_hmac(key, message, signature)) # True
print("Invalid:", verify_hmac(key, "tampered", signature)) # FalseComments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.