# HMAC-SHA256 ģenerators

Izveidojiet HMAC-SHA256 parakstu no ziņojuma un slepenas atslēgas. Rīks abus kodē UTF-8 formātā, izmanto RFC 2104 definēto HMAC konstrukciju ar SHA-256 un atgriež 256 bitu tagu hex vai Base64 formātā. Izstrādātāji to izmanto, lai atkļūdotu tādu pakalpojumu kā Stripe, GitHub vai Slack tīmekļa āķu parakstus, parakstītu API pieprasījumus un salīdzinātu rezultātus ar savu kodu. Atslēga netiek atgriezta vai reģistrēta žurnālā.

## Bieži uzdotie jautājumi

### Kas ir HMAC-SHA256?

HMAC-SHA256 ir ziņojuma autentifikācijas kods, kas veidots no SHA-256 un slepenas atslēgas, kā noteikts RFC 2104. Pareizo ziņojuma tagu var aprēķināt tikai tas, kam ir šī atslēga. Rezultāts ir 32 baiti jeb 64 hex rakstzīmes.

### Kā pārbaudīt tīmekļa āķa parakstu?

Ielīmējiet precīzu neapstrādātu pieprasījuma pamattekstu kā ziņojumu un parakstīšanas noslēpumu kā atslēgu, pēc tam salīdziniet rezultātu ar paraksta galveni. Daudzi pakalpojumi paraksta kombināciju, piemēram, Stripe laika zīmogu, punktu un pamattekstu, tāpēc izveidojiet ziņojumu, kā aprakstīts to dokumentācijā. Viena mainīta baita dēļ tags būs atšķirīgs.

### Vai ir zināms testa vektors?

RFC 4231 testa gadījumā 2 izmantota atslēga Jefe un ziņojums what do ya want for nothing?, un sagaidāmais rezultāts ir 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843. Šis rīks atgriež tieši šo vērtību.

### Kā tiek kodēta atslēga un ziņojums?

Abi tiek kodēti kā UTF-8 teksts. Ja jūsu noslēpums ir norādīts hex vai Base64 formātā, kā to dara daži pakalpojumi, baiti atšķiras no redzamā teksta, un atslēga vispirms jāatkodē savā kodā. Atstarpes un rindu pārtraukumi tiek ņemti vērā abos laukos.

### Vai mana slepenā atslēga tiek saglabāta?

Nē. Atslēga tiek izmantota tikai taga aprēķināšanai pieprasījuma laikā. Tā netiek iekļauta atbildē, reģistrēta žurnālā vai saglabāta.

### Vai atslēga var būt tukša vai ļoti gara?

HMAC pieņem jebkura garuma atslēgas, tostarp tukšu atslēgu. Atslēgas, kas garākas par 64 baitiem, vispirms tiek jauktas ar SHA-256, kā noteikts RFC. Reālai lietošanai izvēlieties nejaušu atslēgu, kas ir vismaz 32 baitus gara.

### Vai izvēlēties hex vai Base64?

Izmantojiet formātu, ko nosūta otra puse. GitHub un Stripe izmanto hex, savukārt Slack pirms hex pievieno v0=, un daudzās sistēmās, kas balstītas uz AWS un JWT, tiek izmantots Base64. Abi formāti kodē tos pašus 32 baitus.

### Vai HMAC-SHA256 ir tas pats, kas atslēgas un ziņojuma savienošana un SHA-256 jaukšana?

Nē. HMAC jauc ziņojumu divreiz ar iekšējām un ārējām, papildinātām atslēgām, kas aizsargā pret garuma paplašināšanas uzbrukumiem. Atslēgas un ziņojuma savienošana un vienreizēja jaukšana dod citu, vājāku rezultātu.

### Kā salīdzināt parakstus savā kodā?

Izmantojiet nemainīga laika salīdzināšanas funkciju, piemēram, crypto.timingSafeEqual valodā Node.js vai hmac.compare_digest valodā Python. Parasta virkņu salīdzināšana var nopludināt informāciju par sagaidāmo tagu, izmantojot izpildes laika atšķirības.

### Cik liels var būt ziņojums?

Ziņojums un atslēga kopā var būt līdz 5 MiB teksta. Ar to pietiek tipiskām tīmekļa āķu kravām un API pieprasījumiem.

Jūsu reklāma šeit?

[Rakstiet mums](mailto:hi@dennn.is?subject=Rekl%C4%81ma%20vietn%C4%93%20OneClick%20Pro)

[Reklāma Aģentiem gatavais spraudņu komplekts vietnei WordPress.](https://sleekwp.com/?ref=oneclickpro)
