Sobes.tech
Middle+

Какво е HMAC?

sobes.tech AI

Отговор от AI

HMAC (Hash базиран код за удостоверяване на съобщения) е механизъм за проверка на автентичността и цялостта на съобщение, използвайки хеш функция и тайна ключ.

Работи по следния начин:

  1. Съобщението и тайният ключ се обработват чрез определена хеш функция.
  2. В резултат се получава уникален хеш код (HMAC).
  3. Този HMAC се изпраща заедно със съобщението.
  4. Получателят, който има същото съобщение и тайния ключ, пресмята отново HMAC.
  5. Ако пресметнатият HMAC съвпада с получения, се счита, че съобщението не е било променено и идва от източник, който притежава тайния ключ.

HMAC_K(m) = Hash((K ⊕ opad) || Hash((K ⊕ ipad) || m))

Където:

  • K — тайният ключ.
  • m — съобщението.
  • Hash — използваната хеш функция (например SHA-256).
  • || — конкатенация.
  • — XOR операция.
  • ipad (вътрешна подложка) и opad (външна подложка) — константи, използвани в алгоритъма.

Разликата от обикновената хеш функция е, че HMAC използва тайния ключ, което го прави устойчив на определени видове атаки, насочени към фалшифициране на хеша.

Приложения в уеб разработката:

  • Bearer tokens: За създаване и проверка на токени за удостоверяване.
  • Подписване на заявки: За проверка на автентичността на заявки към API.
  • Проверка на данни: Гарантира, че данните не са били променени по време на предаване.

Предимства:

  • Висока криптографска устойчивост.
  • Съвместим с различни хеш функции.
  • Лесен за реализиране.