SHA-256, SHA-384, SHA-512 at HMAC, kinuwenta sa browser mo.
Para saan ito
Gumawa ng hash — isang fingerprint ng teksto na pare-pareho ang haba at buong nagbabago kahit isang karakter lang ang mabago — para tingnan kung magkatugma ang dalawang teksto, o dahil may system na humihingi nito.
Bago magsimula
Ihanda ang teksto, at ang hash na ibinigay sa iyo kung may tsine-check ka. Para sa na-download na file, gamitin ang File Checksum tool.
I-paste ang teksto
I-type o i-paste sa Tekstong hahashin, kapalit ng sample. Bilang ang bawat karakter, pati ang espasyo o line break sa dulo.
Piliin ang algorithm
Sa Algorithm, piliin ang SHA-256, SHA-384 o SHA-512 — kung alin ang hiningi sa iyo. SHA-256 ang pinakamadalas hingin.
Piliin kung payak na hash o HMAC
Iwan ang Paraan sa Payak na hash maliban kung HMAC ang hiningi sa iyo — hash na ginawa gamit ang lihim na susi, kaya napapatunayan din kung sino ang gumawa. Para doon, piliin ang HMAC (may susi) at i-type ang susi sa Lihim na susi.
Piliin kung paano isusulat
Sa Ilabas bilang, iwan sa Hexadecimal (0–9 at a–f lang) maliban kung Base64 ang hiningi sa iyo.
Gumawa, saka kopyahin o ihambing
Pindutin ang Gumawa para makita ang hash, saka Kopyahin para kunin ito. Para i-check ang ibinigay sa iyo, tingnan ang Lahat ng tatlo — dapat eksaktong kapareho nito ang isa sa mga linya.
Pagbasa ng resulta
Kung may problema
Ang hash ay function ng BYTES, hindi ng mga titik. Kaya walang kahulugan ang "SHA-256 ng isang string" hangga't hindi sinasabi kung anong encoding — at dito, palaging UTF-8. Isang karakter ang piso sign at tatlong byte, kaya ipinapakita ng pahina ang dalawang bilang.
Iyan din ang dahilan ng pinakamadalas na hindi pagtugma: ang newline sa dulo. Ang echo hello ay nagpapadala ng anim na byte, hindi lima, kaya ibang input na ang na-hash. Tingnan ang bilang ng byte kapag hindi tumugma ang isang halaga.
Ang hash at HMAC ay hindi magkapareho ang trabaho. Pinapatunayan ng hash na hindi nagbago ang datos. Kayang kuwentahin ninuman ang SHA-256, kaya kung kayang baguhin ng umaatake ang datos, kaya rin niyang kuwentahin ulit ang digest. Ang HMAC ay nangangailangan ng lihim na susi, kaya iyon ang nagpapatunay kung sino ang gumawa nito.
Halos laging bagong linya sa dulo. Ang `echo hello` ay nagpapadala ng “hello\n” — anim na byte, hindi lima — kaya magkaibang input ang dalawang digest at hindi sila kailanman magtutugma. Gamitin ang `echo -n` o ang `printf`, o idikit ang teksto dito nang walang bagong linya. Iniuulat ng pahinang ito ang bilang ng byte sa tabi ng digest kaya nakikita ang pagkakaiba sa halip na maging misteryo.
UTF-8. Ang hash ay function ng byte at hindi ng karakter, kaya walang kahulugan ang “ang SHA-256 ng isang string” hangga't walang pinapangalanang encoding. Mahalaga ito sa sandaling hindi payak na ASCII ang teksto: ang tandang piso ay isang karakter at tatlong byte. Iyon ang dahilan kung bakit ipinapakita ng pahina ang dalawang bilang.
Pinapatunayan ng payak na hash na hindi nagbago ang datos. Pinapatunayan ng HMAC kung sino ang gumawa nito, dahil kailangan ng lihim na susi para makakuwenta ng isa. Kahit sino ay makakakuwenta ng SHA-256, kaya walang pinapatunayan ang hubad na digest — kung kayang baguhin ng umaatake ang datos, kaya rin niyang kuwentahin muli ang digest para tumugma.
Dahil mahina ang SHA-256 sa length extension: ang pagkaalam sa hash ng lihim kasama ang mensahe ay nagpapahintulot sa umaatake na kuwentahin ang hash ng lihim na iyon kasama ang mas mahabang mensahe, nang hindi kailanman nalalaman ang lihim. Ang nakapugad na konstruksiyon ng HMAC ang nagsasara nito, at iyon ang buong dahilan ng pag-iral nito sa halip na maging basta kumbensiyon.
Sira silang dalawa para sa anumang umaasang mahirap ang banggaan, at pareho pa rin silang unang inaabot ng mga tao. Ang pag-aalok sa kanila katabi ng SHA-2 ay maghaharap sa kanila bilang usapin ng panlasa. Tunay na pangangailangan ang pagpapatunay ng lumang checksum na gawa ng iba at hindi iyon sapat na dahilan para maglabas ng sirang primitive dito.
Walang umaalis sa browser mo. Ang mga hash function ay isinulat sa sariling calculation engine ng site na ito — hindi tinatawag sa network, at hindi kinuha sa third-party na library — kaya ang tekstong idinidikit mo ay hindi kailanman ipinapadala, itinatala o itinatago.
Sinusuri sila laban sa inilathalang test vector at hindi laban sa sarili nila. Ang SHA-256, SHA-384 at SHA-512 ay pinapatunayan laban sa FIPS 180-4, kasama ang kasong isang milyong byte, at ang konstruksiyon ng HMAC laban sa RFC 4231 — na ang kaso 6 ay sumasaklaw sa panuntunang madalas mapalampas ng kinamay na HMAC, na ang susing mas mahaba sa block ay hina-hash at hindi pinuputol.
Ang SHA-384 ay hindi pinutol na SHA-512. Magkaiba ang panimulang halaga nila, kaya ang pagputol ng 48 byte sa SHA-512 ay nagbibigay ng iba at maling sagot.
Sa HMAC, ang susing mas mahaba sa block ng algorithm ay hina-hash muna, hindi pinuputol. Ito ang linyang pinakamadalas na nakakalimutan sa sulat-kamay na HMAC — at kapag nakaligtaan, ang dalawang magkaibang mahabang susi ay puwedeng magbigay ng parehong MAC. Ang RFC 4231 case 6 ay umiiral para mahuli mismo ito, at sinusubok namin laban doon.
Mahalaga
Computed in your browser and never transmitted. The implementations are verified against the FIPS 180-4 and RFC 4231 test vectors, but a digest is only as meaningful as the bytes you gave it — check the byte count if a value does not match one from elsewhere. Walang ipinapadala sa mga server namin ang tina-type mo rito — sa browser mo tumatakbo nang buo ang pagkuwenta.