HMAC ilə Datanın Həqiqiliyinin Yoxlanılması
Kriptoqrafiya nədir? Kriptoqrafiyanın əsasları nələrdir? Hashing nədir? Hashing əsasları nələrdir?Alqoritm nədir?HMAC nədir? HMAC nə üçün istifadə olunur?HMAC ilə mesajın həqiqiliyini yoxlamaq necə aparılır?
Telegram kanalına qoşularaq bu və digər mövzular üzrə quizlərdə iştirak edə bilərsiniz!
Telegram (Kanal): https://t.me/xakeraz_official
HMAC
HMAC (Hash-based message authenticated code) – hash dəyərinə əsaslanmış verilənin həqiqiliyini yoxlanılması hash alqoritmlərindən biridir.Bu mexanizmin işləməsi üçün hash əməliyyatından əvvəl gizli açar təyin edilməlidir. Bununla belə bu hash alqoritmi bizə mesajın həqiqiliyi, tamlığı və doğruluğunu təmin edir. HMAC hash alqoritmi olaraq MD5,SHA-256, SHA-512 və ya SHA1-dən istifadə edir.

Bəs HMAC necə işləyir?Təsəvvür edək ki, (Mr Robot serialı üzərindən alınan obrazlar əsasında) Tayrel Coannaya mesaj göndərmək istəyir. Tayrel mesajın tamlığını təmin etmək üçün MD5 hash alqoritmindən istifadə edə bilər.Daha sonra mesajın həqiqiliyini təmin etmək üçün gizli açar təyin edir. Məhz buna görə HMAC-dan istifadə edilir.
Tayral Coannaya mesaj göndədikdən sonra Coanna həmin gizli açarı əldə edilən mesajın yeni hahs əldə etmək üçün istifadə edir. İndi yeni yaradılan və Tayrel tərəfindən göndərilən HMAC hashlər müqayisə edilir. Əgər hash dəyərləri üst-üstə düşürsə, o zaman deyə bilərik k, göndərilən məlumat dəyişdirilməmişdir və Tayrel tərəfindən göndərilmişdir.
Həqiqiliyinin yoxlanması Tayrel və Coanna arasında olan eyni bir gizli açar ilə təmin edilmişdir.
Məlumat HMAC ilə göndərildikdə mesaj şifrələnmir, yəni məlumat açıq formada ötürülür. Burada əsas isə məlumatın həqiqiliyi və doğruluğu təmin etməkdir.
Python proqramlaşdırma dilindən istifadə edərək biz HMAC-MD5 ilə belə həqiqiliyi təmin edə bilərik:
Tayrelin Coannaya göndərmək üçün istifadə etdiyi alqoritm:
import hmac
import hashlib
# Gizli açar və mesaj
secret_key = b'supersecretkey'
message = b'Salam, B necesen?'
# HMAC-MD5 imza yaradılır
hmac_md5 = hmac.new(secret_key, message, hashlib.md5).hexdigest()
print("Mesaj:", message.decode())
print("HMAC-MD5:", hmac_md5)
└─# python3 hmacmd5.py
Mesaj: Salam, B necesen?
HMAC-MD5: f633912e34bc64469145ee454e630eb5
Coannaya göndərilən məlumat isə belədir:
message = b'Salam, B necəsən?'
hmac = "f633912e34bc64469145ee454e630eb5"
Coanna əldə edilən məlumatları və özündə əvvəlcədən Tayrel ilə təyin edilən gizli açar ilə həqiqiliyi aşağıdakı alqoritm ilə təmin edir:
import hmac
import hashlib
# Açar və qəbul olunmuş məlumatlar
secret_key = b'supersecretkey'
received_message = b'Salam, B necesen?'
received_hmac = "f633912e34bc64469145ee454e630eb5" # Məsələn
# Yenidən HMAC-MD5 hesablanır
calculated_hmac = hmac.new(secret_key, received_message, hashlib.md5).hexdigest()
# Qarşılaşdırma
if hmac.compare_digest(received_hmac, calculated_hmac):
print("✅ Mesaj doğrudur və dəyişdirilməyib.")
else:
print("❌ Diqqət! Mesaj dəyişdirilib və ya saxta açarla imzalanıb.")
└─# python3 dehmacmd5.py
✅ Mesaj doğrudur və dəyişdirilməyib.
Qeyd:
- MD5 kriptoqrafik baxımdan zəif hesab olunur, amma performans və sadəlik üçün bəzi hallarda hələ də istifadə olunur (məsələn, daxili sistemlərdə).
- Daha təhlükəsiz alternativ:
SHA-256,SHA-512
Ümid varam faydalı olmuşdur! Oxuduğunuz üçün təşəkkürlər!
Bizi izləyin:
Telegram (Kanal): https://t.me/xakeraz_official
Paylaşımların səliqəli yığılmış halı: https://t.me/xakerazgroup
Fikir və şərhləriniz : https://t.me/xakerazchat