İçeriğe geç
🛠️ToolsShed

HMAC Üretici

Mesaj ve gizli anahtar kullanarak SHA-256/384/512 ile HMAC imzaları oluşturur.

Bu araç hakkında

HMAC (Hash Tabanlı İleti Kimlik Doğrulama Kodu), transit halindeki veya depolanan verilerin bütünlüğünü ve orijinalliğini doğrulamak için kullanılan bir kriptografik tekniktir. Gizli bir anahtarı bir iletiyle birleştirerek HMAC, verilerin değiştirilmediğini ve yalnızca gizli anahtarı olan birinin bunu oluşturabileceğini kanıtlayan benzersiz bir imza üretir. Bu, API'leri güvenli hale getirmek, web kancalarını doğrulamak, kimlik bilgilerini imzalamak ve Internet üzerinden hassas iletişimi korumak için gereklidir.

Bu aracı kullanmak için ileti metninizi metin alanına girin ve alıcıyla paylaştığınız gizli bir anahtarı sağlayın. Güvenlik gereksinimlerinize göre karma algoritmasını (SHA-256, SHA-384 veya SHA-512) seçin, ardından imzayı oluşturmak için "HMAC Oluştur" seçeneğine tıklayın. Ortaya çıkan karma, verilerinizle birlikte gönderilebilir, böylece alıcı gizli anahtarının kopyasını kullanarak aynı HMAC'ı oluşturarak orijinalliği doğrulayabilir.

HMAC, ödeme işlemcileri, bulut API'leri (AWS, Google Cloud, Stripe) ve gerçek zamanlı iletişim sistemleri tarafından kurcalamayı önlemek ve ileti kaynağını doğrulamak için yaygın olarak kullanılır. SHA-256 varyantı çoğu kullanım durumu için güçlü güvenlik sağlarken, SHA-384 ve SHA-512 oldukça hassas uygulamalar için ek güvenlik sınırı sunar. HMAC'ın güvenliği tamamen gizli anahtarınızı özel tutmaya bağlı olduğunu unutmayın — bunu asla güvensiz kanallar üzerinden paylaşmayın.

Sıkça Sorulan Sorular

Kod Uygulaması

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)) # False

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.