Utilia

Generador de hash (MD5, SHA-256)

Genera hashos MD5, SHA-1, SHA-256 i SHA-512 de text o de fitxers de qualsevol mida i verifica sumes de verificació. Tot s'executa al navegador.

Origen
El text es codifica en UTF-8.
Algorismes

Com fer servir el generador de hash

  1. A Origen, tria Text o Fitxers.
  2. Per al text, escriu-lo o enganxa’l a Text per calcular-ne el hash. Els hashos s’actualitzen mentre escrius; el botó Calcula el hash els recalcula quan vulguis.
  3. Per als fitxers, deixa’n un o més a la zona de dipòsit o fes-hi clic per triar-los. Per als fitxers grans apareix una barra de progrés amb un botó Cancel·la.
  4. Selecciona els Algorismes que necessites (MD5, SHA-1, SHA-256, SHA-512) i el Format de sortida: hexadecimal en minúscules, hexadecimal en majúscules o Base64.
  5. Per verificar una descàrrega, enganxa la suma de verificació publicada a Compara amb un hash esperat (opcional). L’eina t’indica quin algorisme coincideix, o que no n’hi ha cap.

Què és un hash?

Una funció de hash criptogràfica converteix qualsevol entrada, ja sigui una paraula o una imatge de disc de 50 GB, en una empremta curta de mida fixa. La mateixa entrada sempre dona el mateix hash, i canviar un sol bit de l’entrada canvia completament el resultat. No es pot revertir un hash per recuperar l’entrada.

Algorisme Mida de sortida Longitud en hex Estat
MD5 128 bits 32 caràcters Trencat: només sumes de verificació
SHA-1 160 bits 40 caràcters Trencat: col·lisions demostrades el 2017
SHA-256 256 bits 64 caràcters Segur, l’estàndard actual
SHA-512 512 bits 128 caràcters Segur, sovint més ràpid en processadors de 64 bits

Per exemple, el hash SHA-256 d’abc és ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.

Com verificar una descàrrega

Els editors de programari sovint publiquen una suma de verificació SHA-256 al costat dels seus fitxers. Un cop baixat el fitxer, obre el mode Fitxers, deixa-hi el fitxer i enganxa el valor publicat al camp de comparació. Una coincidència demostra que el fitxer no s’ha corromput durant la descàrrega i que és idèntic al que l’editor va calcular. No demostra que l’editor sigui de confiança. Per a això, la suma de verificació ha de venir d’una font fiable, com un lloc HTTPS o una versió signada.

Com es gestionen els fitxers grans

Els fitxers es llegeixen localment i mai no es pugen. Els fitxers de fins a 64 MB es processen d’un sol cop amb l’API Web Crypto integrada al navegador. Els fitxers més grans es llegeixen en blocs de 4 MB i s’alimenten a funcions de hash incrementals, de manera que l’ús de memòria es manté constant i es poden processar fitxers de diversos gigabytes. En un ordinador típic, compta amb unes quantes centenes de megabytes per segon per a SHA-256.

Text, codificacions i fins de línia

Un hash es calcula sobre bytes, no sobre caràcters. Aquesta eina codifica el text en UTF-8, l’estàndard a la web i a la majoria de llenguatges de programació. Si obtens un resultat diferent en un altre lloc, comprova si hi ha diferències ocultes: un salt de línia final (echo "abc" | sha256sum calcula el hash d’abc\n; fes servir echo -n), fins de línia de Windows (\r\n) o una altra codificació com UTF-16.

Preguntes freqüents

Puc fer servir MD5 o SHA-1 per desar contrasenyes?

No, ni tampoc SHA-256 simple. Aquestes funcions estan dissenyades per ser ràpides, de manera que un atacant pot provar milers de milions d’intents per segon. Les contrasenyes necessiten un algorisme lent i amb sal, com Argon2, bcrypt o scrypt.

Continua sent útil MD5?

Sí, per detectar corrupcions accidentals, desduplicar fitxers o comparar amb una llista antiga de sumes de verificació. No s’ha de confiar en ell davant d’una manipulació deliberada, perquè qualsevol pot crear dos fitxers diferents amb el mateix MD5.

Es pugen els meus fitxers?

No. Els fitxers els llegeix i en calcula el hash el teu navegador. No s’envia res a cap servidor, de manera que pots calcular el hash de documents confidencials.

Per què el meu hash no coincideix amb el de la línia d'ordres?

Gairebé sempre l’entrada és diferent: un salt de línia final, espais, fins de línia o la codificació del text. Per als fitxers, assegura’t que la descàrrega estigui completa. Un sol byte que falti dona un hash completament diferent.

Quina diferència hi ha entre la sortida en hex i en Base64?

Són dues maneres d’escriure els mateixos bytes. L’hexadecimal és el format habitual per a les sumes de verificació; Base64 és més curt i s’usa, per exemple, als atributs de Subresource Integrity (sha256-…). El camp de comparació accepta tots dos.