Sobes.tech
Middle

HMAC nima?

sobes.tech AI

AIdan javob

HMAC (Hash asosida xabarni autentifikatsiya qilish kodi) xabarning yaxlitligi va autentifikatsiyasini tekshirish uchun mexanizmdir. U kriptografik hash funktsiyasidan (masalan, SHA-256) va maxfiy kalitdan foydalanadi.

Ishlash prinsipi:

  1. Maxfiy kalit xabar bilan birlashtiriladi.
  2. Natija hash qilinadi.
  3. Maxfiy kalit yana avvalgi hash natijasi bilan birlashtiriladi.
  4. Yakuniy natija yana hash qilinadi.

Olingan HMAC qiymati xabarga qo'shiladi. Qabul qiluvchi, ayni shunday maxfiy kalitga ega bo'lib, qabul qilingan xabarning HMACini hisoblab, unga qo'shilgan qiymat bilan solishtirishi mumkin. Agar ular mos kelsa, xabar o'zgartirilmagan va yuboruvchi bilan bir xil kalit bilan yaratilgan bo'ladi.

// Node.jsda HMAC-SHA256 dan foydalanish misoli
const crypto = require('crypto');

const secret = 'sirlash-ochiq';
const message = 'haqiqatni tekshirish uchun xabar matni';

const hmac = crypto.createHmac('sha256', secret);
hmac.update(message);
const hmacValue = hmac.digest('hex');

// console.log(hmacValue); // HMAC qiymatini olti burchakli formatda chiqaradi

Afzalliklari:

  • Boshqa ham, autentifikatsiya ham ta'minlaydi.
  • Standart hash funktsiyalaridan foydalanadi.
  • To'g'ri ishlatilsa, turli kriptografik hujumlarga qarshi chidamli.

Oddiy hash funktsiyasidan farqi: Oddiy hash funktsiyasi (masalan, SHA-256) faqat ma'lumotlarning yaxlitligini kafolatlaydi, autentifikatsiyasini emas. Hujumchi xabarni o'zgartirishi va yangi hash qiymatini hisoblab, aniqlanmasdan qolishi mumkin. HMAC, maxfiy kalit yordamida, buni oldini oladi. Faqat kalitni biladigan, to'g'ri HMAC qiymatini hisoblay oladi.