§

Bandika maandishi au tupa faili kuhash

Usimbuaji
§

Kizalishi cha Hash — SHA-256, MD5, SHA-1 Mtandaoni

Muhtasari wote manne hukokotolewa ndani ya kivinjari chako. Hakuna kinachopakiwa.
§

MD5

Imeachwa
§

SHA-1

Imeachwa
§

SHA-256

§

SHA-512

Wasanidi wa programu katika Afrika Mashariki wanahitaji hashing kwa madhumuni mengi: kuthibitisha uadilifu wa faili zilizopakuliwa, kuunda funguo za akiba, na kuthibitisha saini za API kwa mifumo ya malipo kama M-Pesa. Zana hii inakokotoa MD5, SHA-1, SHA-256, na SHA-512 kabisa kupitia API ya Web Crypto ya kivinjari — faili zako na mifuatano ya siri havisafiri kwa huduma yoyote ya hashing.

Hash ya kriptografia ni nini?

Kazi ya hash ya kriptografia huchukua ingizo la urefu wa nasibu na kutoa muhtasari wa urefu uliowekwa. Ingizo lile lile daima huzalisha muhtasari ule ule; kubadilisha bit moja hubadilisha takriban nusu ya biti za matokeo. Zana hii inakokotoa muhtasari manne unaotumika sana — MD5 (RFC 1321), SHA-1, SHA-256, na SHA-512 (familia ya SHA imefafanuliwa na FIPS 180-4) — kwa maandishi au faili yoyote unayotoa, bila kutuma data kutoka kwenye kifaa chako.

Kizalishi hiki cha hash hufanyaje kazi?

Hashing inafanyika kabisa kwenye mashine yako. SHA-1, SHA-256, na SHA-512 hutumwa kwa API asili ya crypto.subtle.digest ya kivinjari; MD5 hutumia utekelezaji uliofungashwa wa umma kwa sababu Web Crypto haitumii MD5. Hatua ni:

  1. Ingizo lako husomwa kutoka kwenye eneo la maandishi, au faili yako husomwa kutoka diski kwenye ArrayBuffer. Maandishi husimbwa kama UTF-8 kabla ya hashing ili muhtasari ulingane na kile ambacho wito wa seva-upande hashlib.sha256(text.encode()) ungehuliza.
  2. Kila algorithm hupachika ujumbe kwenye mpaka wa block na kuuchakata block kwa block, ukichanganya baiti za ingizo na hali ya ndani inayoendelea kupitia mlolongo wa uendeshaji wa bitwise na kihesabu-modular.
  3. Block ya mwisho inapochakatwa hali ya ndani inakamilishwa: MD5 inatoa biti 128, SHA-1 inatoa biti 160, SHA-256 inatoa biti 256, na SHA-512 inatoa biti 512.
  4. Baiti ghafi za muhtasari zinaumbwa kama hexadecimali ya herufi ndogo au Base64 ya kawaida, kulingana na usimbuaji unaopicha juu ya paneli.
  5. Kila muhtasari huandikwa kwenye eneo lake la maandishi ya kusomwa tu na kitufe cha Nakili. Kuwasha hali ya Moja kwa moja kuhash tena kwa kila kibonyezi ili uweze kuangalia athari ya mlipuko wakati halisi.

Ni algorithm ipi ya hash ninapaswa kutumia?

Algorithm nne zinazotumwa hapa zinashughulikia anuwai yote kutoka checksum za urithi hadi mapendekezo ya sasa ya kriptografia. Chagua kwa kazi, si kwa ufahamu:

  • MD5 (biti 128) — ya haraka na imeenea, lakini imevunjwa kwa kriptografia. Migongano ya vitendo imekuwa ya umma tangu 2004. Itumie tu kwa checksum zisizo za usalama: funguo za uondoaji-nakala, vitoroshi vya akiba, alama za mtindo wa ETag, na kuthibitisha uadilifu wa faili dhidi ya katalogi inayoaminika.
  • SHA-1 (biti 160) — pia imeachwa kwa usalama. Shambulio la SHAttered lilionyesha mgongano wa umma wa PDF mwaka 2017. Bado inaonekana katika vitambulisho vya zamani vya kitu cha Git, vyeti vya zamani vya TLS, na ujenzi wa HMAC ambapo kuvunjwa kwa hash ya msingi bado hakuvuji ufunguo. Usiianzishe kwa kazi mpya.
  • SHA-256 (biti 256) — chaguomsingi la sasa la matumizi ya jumla. Inatumika katika alama za vidole vya cheti cha TLS, hashi za block za Bitcoin, checksum za toleo la programu, muhtasari wa picha za kontena, na pipeline za kisasa nyingi za kutia saini msimbo. Chagua hii ukiwa na shaka.
  • SHA-512 (biti 512) — familia ile ile ya SHA-2 kama SHA-256 na hali ya ndani kubwa zaidi na ukubwa wa neno pana wa biti 64. Mara nyingi ni ya haraka zaidi kuliko SHA-256 kwenye CPU za biti 64 na chaguo linalopendelewa unapohitaji pembezoni ya ziada ya mgongano au muhtasari mrefu zaidi kwa funguo za HMAC.

Kwa nini kutumia kizalishi hiki cha hash?

  • Faragha: kila baiti ya ingizo hufanywa hash ndani ya kompyuta kwenye kivinjari chako. Hakuna kupakia faili, hakuna safari ya mtandao, hakuna kumbukumbu ya seva. Kichaguzi cha faili husoma kutoka diski moja kwa moja kupitia File API.
  • Muhtasari manne kwa upitio mmoja: bandika mara moja na usome MD5, SHA-1, SHA-256, na SHA-512 kwa upande mmoja, ubadilishe usimbuaji wa matokeo kati ya hex na Base64 bila kuhash tena.
  • Matokeo yanayokidhi viwango: familia ya SHA hutumwa kwa crypto.subtle.digest, ambayo ni utekelezaji huo huo wa FIPS 180-4 ambao mfumo wako wa uendeshaji tayari unaamini. MD5 inafuata RFC 1321 baiti kwa baiti.
  • Imejengwa kwa kazi ya uthibitishaji: hali ya moja kwa moja inaonyesha athari ya mlipuko unapoandika; paneli ya faili inashughulikia faili za binary hadi kumbukumbu ambayo kichupo kinaweza kushikilia ili uweze kuthibitisha hifadhi za toleo bila terminal.

Matumizi ya kawaida ya kazi za hash ni yapi?

Hashi zinaonekana kwenye kazi ya kawaida ya uhandisi:

  • Kuthibitisha upakuaji: kulinganisha muhtasari wa SHA-256 wa hifadhi ya toleo dhidi ya thamani iliyochapishwa kwenye tovuti ya mradi kuthibitisha haikubadilishwa wakati wa usafiri.
  • Utatuzi wa muunganisho: kuunda upya MD5 au SHA-256 haswa ambayo huduma ya mshirika inatarajia kwenye saini ya ombi ili uweze kupata kosa katika kijenzi chako cha mfuatano wa kanoni.
  • Kushughulikia maudhui: kuzalisha kitambulisho cha kuhisi kutoka malipo kutumika kama ufunguo wa akiba, alama ya uondoaji-nakala, au kitambulisho cha kitu cha mtindo wa Git.

Mfano wa hash unaonekanaje?

Kufanya hash mfuatano wa ASCII hello huzalisha 5d41402abc4b2a76b9719d911017c592 kama MD5, aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d kama SHA-1, 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 kama SHA-256, na mfuatano wa hex wa herufi 128 unaoanza 9b71d224bd62f3785d96d46ad3ea3d73... kama SHA-512. Kuongeza nafasi moja ya mwisho na kuhash tena hubadilisha kila muhtasari zaidi ya kutambuliwa.

Kizalishi hiki cha hash kinafanya kazi kabisa kwenye kivinjari chako kwenye primitives sawa ambazo mfumo wako wa uendeshaji tayari unaamini: Web Crypto kwa familia ya SHA na utaratibu mdogo, uliokaguliwa wa MD5 kwa muhtasari mmoja ambao Web Crypto haitoi. Bandika, tupa faili, nakili muhtasari — hakuna kingine kinachoacha kichupo.