Хэш функц ба HMAC
Энэ хичээлээр хэш функц, SHA-256 болон HMAC-ийн үндсийг судална. Hash-ийн шинж чанар, файлын бүрэн бүтэн байдлыг шалгах арга, энгийн hash ба HMAC-ийн ялгааг Node.js жишээгээр сурна.
- Зохиогч:
- Turmandakh
- Нийтэлсэн:

Хэш функц гэж юу вэ?
Хэш функц нь ямар ч хэмжээтэй өгөгдлийг тогтмол урттай хэш утга болгон хувиргадаг криптограф алгоритм юм.
Input
↓
Hash Function (SHA-256)
↓
256-bit DigestSHA-256
SHA-256 нь 256 битийн хэш үүсгэдэг криптограф алгоритм юм. Үр дүнг 16-тын тооллын системээр илэрхийлэхэд 64 тэмдэгт гарна.
import crypto from "node:crypto";
const hash = crypto
.createHash("sha256")
.update("Hello")
.digest("hex");
console.log(hash);Хэш функцийн үндсэн шинж чанарууд
- Deterministic: Ижил өгөгдөл үргэлж ижил хэш үүсгэнэ.
- Avalanche effect: Оролт бага зэрэг өөрчлөгдөхөд хэш их өөрчлөгдөнө.
- Preimage resistance: Хэшээс эх өгөгдлийг олох нь тооцооллын хувьд маш хэцүү.
- Collision resistance: Ижил хэш үүсгэх хоёр өөр оролтыг олоход маш хэцүү.
Файлын бүрэн бүтэн байдлыг шалгах
Файл татаж авах үед SHA-256 checksum-ийг харьцуулж, өгөгдөл өөрчлөгдсөн эсэхийг шалгаж болно.
Албан ёсны SHA-256
↓
Татсан файлын хэштэй харьцуулах
↓
Ижил бол өөрчлөгдөөгүй байх хүчтэй үндэслэлГэхдээ checksum-ийн эх сурвалж найдвартай байх шаардлагатай.
HMAC гэж юу вэ?
HMAC (Hash-based Message Authentication Code) нь хэш функц болон нууц түлхүүр ашиглан мессежийн бүрэн бүтэн байдал, баталгаажуулалтыг хангахад хэрэглэгддэг.
Message + Secret Key
↓
HMAC-SHA-256
↓
Authentication TagNode.js жишээ:
const mac = crypto
.createHmac("sha256", "secret-key")
.update("Hello")
.digest("hex");Энд secret-key нь сургалтын жишээ юм. Бодит системд нууц түлхүүрийг хамгаалалттай хадгална.
Hash ба HMAC-ийн ялгаа
SHA-256
HMAC-SHA-256
Нууц түлхүүр шаардлагагүй
Нууц түлхүүр шаардлагатай
Өгөгдлийг hash болгоно
Өгөгдлийг түлхүүр ашиглан баталгаажуулна
Checksum шалгахад ашиглана
API болон мессежийн баталгаажуулалтад ашиглана
Дүгнэлт: SHA-256 нь өгөгдлийн хэш үүсгэдэг бол HMAC нь нууц түлхүүр ашиглан мессежийн бүрэн бүтэн байдал, баталгаажуулалтыг хангахад тусалдаг.
Бататгах асуулт
Асуулт 1/3
SHA-256 алгоритм ямар үүрэгтэй вэ?
Энэ нийтлэл танд таалагдсан уу?