Instrumente pentru dezvoltatori

Generator de hash și sumă de control

Obțineți simultan MD5, SHA-1, SHA-256, SHA-384 și SHA-512 pentru text și fișiere. Verificați un fișier descărcat comparativ cu suma de control oficială pentru a vă asigura că nu a fost manipulat. Totul este local, nimic nu părăsește browserul dumneavoastră.

5 algoritmi simultan Sume de control pentru text + fișiere Local, fără încărcare Rezultate instantanee
Caractere Octeți UTF-8

CARACTERISTICI

Toate cele cinci hash-uri pe o singură pagină

De la amprente rapide la semnături securizate — fiecare hash de care aveți nevoie pentru dezvoltare, operațiuni și verificarea descărcărilor.

01

Cinci algoritmi

MD5, SHA-1, SHA-256, SHA-384 și SHA-512 afișate împreună cu lungimile de biți ale ieșirii — nu mai este nevoie să comutați între instrumente.

02

Calcul în timp real

Hash-uri pentru text pe măsură ce tastați, niciun buton de apăsat. Rezultate în monospace — faceți clic pe un rând pentru a copia.

03

Verificarea integrității fișierului

Trageți un instalator, imagine de disc sau arhivă și comparați-l cu suma de control oficială pentru a confirma o descărcare nemanipulată.

04

Local, fără încărcare

Familia SHA utilizează Web Crypto API încorporat al browserului. Textul și fișierele nu părăsesc niciodată mașina dumneavoastră — conținutul sensibil este în siguranță.

05

Consecvent UTF-8

Textul este hashat ca octeți UTF-8, așa că rezultatele se potrivesc exact cu md5sum, funcția md5() din PHP și hashlib din Python.

06

Copiere cu un singur clic

Copiază fiecare hash individual, sau pe toate în formatul standard de sumă de control, gata de lipit într-un terminal.

Ce ar trebui să știi despre hash-uri

Ideea este simplă, dar folosirea celui greșit pentru lucrul potrivit este o greșeală reală de securitate.

Ce sunt exact MD5 și SHA-1?

MD5 (Message-Digest Algorithm 5) a fost proiectat de Ronald Rivest la MIT și publicat în 1992 ca RFC 1321, producând un digest fix de 128 biți (32 caractere hexazecimale) ca succesor al lui MD4. SHA-1 a fost proiectat de Agenția Națională de Securitate a Statelor Unite și publicat în 1995 ca standard federal FIPS 180-1, producând 160 biți. Ambele au devenit cele mai utilizate algoritmi hash în deceniile următoare — folosiți pentru sume de control ale fișierelor, stocarea parolelor, semnături digitale și ID-uri de commit Git. Rețineți că încă produc digesturi corecte astăzi; "insecur" înseamnă că rezistența la coliziuni a fost compromisă, nu că rezultatul este greșit.

Sunt hashing, criptarea și codificarea același lucru?

Nu — rezolvă probleme diferite. Codificarea (cum ar fi Base64 sau codificarea URL) este o transformare de format reversibilă pe care oricine o poate anula, fără a oferi securitate. Criptarea este reversibilă cu o cheie: textul devine text cifrat și cheia corectă îl decriptează. Hashing este unidirecțional, nu are cheie și originalul nu poate fi recuperat din digest — este folosit pentru amprente, verificări de integritate și semnături. Două concepții greșite comune: tratarea Base64 ca "criptare" și afirmarea că o parolă a fost "criptată cu MD5" — adică este hashing, și în plus o metodă nesigură de stocare a parolelor.

De ce nu poate fi un hash inversat înapoi la original?

Un hash este o funcție unidirecțională: intrarea de orice lungime este comprimată într-un digest de lungime fixă, pierzând majoritatea informațiilor. Așa cum nu poți reconstrui o propoziție din numărul ei de cuvinte, originalul nu poate fi derivat din digest. Algoritmii siguri sunt proiectați special pentru a face o astfel de inversare imposibilă din punct de vedere computațional.

MD5 și SHA-1 sunt încă utilizabile?

Pentru a verifica dacă un fișier a fost corupt accidental în tranzit — da, orice modificare de octet în schimbarea sa practic întotdeauna MD5-ul. Dar niciodată pentru securitate: există atacuri practice de coliziune pentru ambele (cercetătorii pot crea două fișiere diferite cu același MD5 controlat de ei). Folosește SHA-256 sau superior pentru parole, semnături și certificate.

De ce hash-ul meu diferă de cel al unui alt instrument pentru același text?

Trei vinovați obișnuiți: ① codificare de caractere diferită (acest instrument folosește întotdeauna UTF-8; instrumente mai vechi pot folosi GBK sau Latin-1); ② o linie nouă la final — comanda echo adaugă una implicit (folosește echo -n); ③ un spațiu suplimentar sau un caracter invizibil la copiere. Hash-urile sunt sensibile la fiecare octet, așa că un octet greșit schimbă rezultatul complet.

De ce nu pot fi stocate parolele ca MD5/SHA-256 simplu?

Hash-urile obișnuite sunt rapide. Cu un tabel hash scurs, atacatorii pot încerca miliarde de ghiciri pe secundă, iar tabelele curcubeu inversează parolele comune instantaneu. Parolele au nevoie de algoritmi intenționați de lenți, greu de utilizat în memorie (bcrypt, scrypt, Argon2) cu un salt unic per parolă, făcând forța brută prohibit de costisitoare.

Cum verific integritatea unui fișier descărcat?

Găsește suma de control publicată pe site-ul oficial (de obicei SHA-256), trage fișierul descărcat în fila „Suma de control a fișierului” de aici și inserează valoarea oficială în caseta de deasupra rezultatelor. Instrumentul detectează algoritmul după lungimea valorii și colorează rândul corespunzător în verde când octeții fișierului sunt exact cei eliberați de editor; roșu înseamnă corupere sau înlocuire de către un om din mijloc — nu rula fișierul.

Care dintre cei cinci algoritmi trebuie folosiți

Alege în funcție de scenariu. Algoritmii mai noi produc rezumate mai lungi, sunt mai rezistenți la atacuri și necesită puțin mai multe resurse de calcul.

Algoritm Data introducerii Lungimea ieșirii Securitate Utilizare specifică
MD5 1992 128 biți (32 caractere) Compromis; coliziuni sunt posibile în practică Amprente fără caracteristici de securitate, deduplicare, compatibilitate cu sisteme vechi
SHA-1 1995 160 biți (40 caractere) Coliziuni sunt posibile în practică din 2017 ID-uri de istorie Git și alte sisteme vechi; nu pentru utilizări de securitate noi
SHA-256 2001 256 biți (64 caractere) Securizat în prezent Sume de control pentru fișiere, semnături, certificate TLS, blockchain-uri — valoarea implicită universală
SHA-384 2001 384 biți (96 caractere) Securizat SHA-512 trunchiat pentru regimuri de conformitate care necesită 384 biți
SHA-512 2001 512 biți (128 caractere) Securizat Semnături de în altă încredere; adesea mai rapid decât SHA-256 pe procesoare pe 64 de biți

"Securizat" înseamnă că până în prezent nu există niciun atac practic de coliziune publică. Pentru stocarea parolelor folosește bcrypt/Argon2, indiferent de algoritmul de hash ales.

Sume de control: cum verifici efectiv un fișier descărcat

Pentru ce servește șirul MD5 sau SHA-256 de pe pagina de descărcare, cum îl compari și cu ce să îl compari — toate într-o singură secțiune.

De ce să verifici deloc

Fișierul de pe discul tău nu este neapărat același cu fișierul de pe server. O comparație de zece secunde a sumei de control te protejează împotriva trei tipuri de probleme:

Corupere în timpul transmiterii

Fișierele mari, de la descărcări cu reluare și rețele instabile, preiau adesea octeți suplimentari în mod surprinzător; depanarea unui instalator defect durează mult mai mult decât zece secunde.

Oglinzi nesincronizate

Multe descărcări provin de fapt din oglinzi sau CDN-uri, unde întârzierile de sincronizare sau defecțiunile cache pot oferi o versiune învechită — sau chiar jumătate de fișier.

Modificare deliberată

Când o sursă de descărcare este compromisă sau o rețea publică este deturnată, fișierele pot conține backdoor-uri. În 2016 site-ul Linux Mint a fost pirateat și link-urile de descărcare au fost înlocuite cu un ISO cu backdoor — primul răspuns al proiectului a fost să îndemne pe toată lumea să verifice suma de control.

Ce este o sumă de control

Editorul hashează fișierul pe serverul său și publică rezultatul pe pagina de descărcare; după descărcare, tu îl hashezi din local. Dacă cele două șiruri se potrivesc caracter cu caracter, octeții fișierului sunt exact cei eliberați de editor — nu sunt corupți sau modificați. Verificarea este sensibilă la fiecare octet: o singură modificare a unui octet schimbă complet valoarea. În general, checksum-urile includ și scheme mai simple precum CRC32 care detectează doar corupții accidentale, în timp ce hash-urile criptografice precum MD5/SHA rezistă și la falsificarea deliberată.

Verifică un fișier în trei pași

  1. 1
    Preia checksum-ul oficial

    Pe pagina de descărcare, găsește valoarea publicată MD5 / SHA-256 (adesea etichetată "checksum" sau furnizată ca fișier însoțitor .sha256) și copiază întregul șir.

  2. 2
    Trage fișierul și copiază

    Comută la fila "Checksum fișier" de mai sus, trage fișierul descărcat și copiază checksum-ul în caseta de deasupra rezultatelor.

  3. 3
    Citește verdictul după culoare

    Instrumentul detectează algoritmul după lungimea valorii: verde înseamnă că fișierul se potrivește exact cu versiunea oficială și este sigur de folosit; roșu înseamnă că ar putea fi corupt sau modificat — nu-l executa.

Citirea checksum-urilor pe site-urile oficiale

Paginiile de descărcare afișează checksum-urile în multe stiluri, dar toate se reduc la două elemente: valoarea hash și numele fișierului. Aceste trei formate sunt cele mai comune — la copiere, preia doar partea de hash (acest instrument ignoră automat spațiile și liniile noi):

# 1. Linie unică: doar valoarea
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

# 2. Format sha256sum: valoare + două spații + nume fișier (un manifest SHA256SUMS constă din multe astfel de linii)
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a  ubuntu-24.04.iso

# 3. Format BSD: Algoritm (nume fișier) = valoare
SHA256 (ubuntu-24.04.iso) = a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

MD5 sau SHA-256

Verifică ce oferă site-ul oficial, dar dacă ai de ales: MD5 este complet adecvat împotriva corupțiilor accidentale în tranzit (orice modificare neintenționată schimbă practic mereu MD5). Împotriva modificărilor deliberate — software de securitate, certificate, pachete semnate — ai nevoie de SHA-256 sau mai puternic, deoarece atacurile practice de coliziune permit atacatorilor să creeze două fișiere diferite cu același MD5. Această informație este prezentată în secțiunea "istoric de securitate" de mai jos.

Verificare direct din linia de comandă

Pe Linux și macOS, instrumentele de checksum acceptă -c pentru a verifica întregul manifest automat — nu este nevoie de comparație manuală. Comenzile încorporate din Windows calculează doar valoarea, pe care apoi trebuie să o compari tu însuți cu șirul oficial.

Mediu Comandă de verificare
Linux sha256sum -c SHA256SUMS (verifică fiecare fișier listat în manifest)
macOS shasum -a 256 -c checksum.txt
Verificare rapidă a unei singure valori echo "valoare-oficială nume-fișier" | sha256sum -c - (afișează OK în caz de succes)
Windows Calculează cu Get-FileHash <fișier> -Algorithm SHA256, apoi compară cu valoarea oficială

Scurt istoric de securitate: cum a fost spart MD5

MD5 nu a eșuit peste noapte — de la prima cracare în mediul academic la certificate falsificate în mediul real a durat două decenii.

  1. 1992

    MD5 este publicat

    Ronald Rivest a lansat MD5 în RFC 1321. Rapid, simplu de implementat și producând întotdeauna un rezumat de 128 de biți, a devenit rapid standardul de facto pentru sumele de control ale fișierelor și stocarea parolelor — și a fost considerat sigur din punct de vedere criptografic.

  2. 2004

    Echipa lui Wang Xiaoyun dezvăluie coliziuni complete MD5

    La CRYPTO 2004, o echipă condusă de matematicianul chinez Wang Xiaoyun a demonstrat un atac de coliziune complet asupra MD5 — construind două fișiere cu conținuturi diferite, dar același hash (inițial în aproximativ o oră pe un supercomputer IBM P690; îmbunătățirile ulterioare au redus timpul la secunde pe hardware obișnuit). Rezistența la coliziune promisă de MD5 a dispărut; ovația care a urmat a devenit unul dintre cele mai faimoase momente din criptografie.

  3. 2008

    Certificate contrafăcute afectează internetul real

    Marc Stevens, Alexander Sotirov și alții au folosit o coliziune cu prefix ales pentru a contrafăca un certificat CA intermediar de încredere de browsere: certificate cu prefixe diferite purtau aceeași semnătură. Un atacator putea emite apoi certificate HTTPS "valide" pentru orice site fals. Autoritățile de certificare au încetat să mai emită certificate MD5 la scurt timp după aceea.

  4. 2012

    Programul malware Flame atacă Windows folosind MD5

    Programul malware Flame, sponsorizat de stat, a folosit o coliziune MD5 pentru a face ca autoritatea de licențiere a serverelor terminale Microsoft să semneze un certificat de semnare a codului contrafăcut, permițându-i să se răspândească în Orientul Mijlociu deghizat într-o actualizare semnată de Microsoft. A fost primul atac din lume real care folosește o coliziune MD5; Microsoft a revocat certificatul printr-un patch de urgență.

  5. 2017

    SHAttered: SHA-1 cade

    Google și institutul olandez CWI (Marc Stevens și colaboratorii) au publicat două fișiere PDF diferite cu același hash SHA-1 — la un cost de aproximativ 6.500 de ani-procesor și 110 ani-procesor grafic. Browserele au încetat să mai aibă încredere în certificate SHA-1 la scurt timp după aceea, iar platformele Git și-au accelerat migrarea în afara acestuia. Eraul de 160 de biți s-a terminat.

Nuanță importantă: un atac de coliziune nu "sparge" hash-ul niciunui fișier existent — construiește două fișiere specifice care au aceeași valoare hash. Dar pentru semnături și certificate, acest lucru este deja suficient pentru o falsificare fatală.

Hashing din linia de comandă

Când un browser nu este la îndemână, fiecare sistem de operare oferă o comandă încorporată (afișată SHA-256).

Mediu Comandă
Linux / macOS sha256sum filename (pe macOS: shasum -a 256 filename)
Windows PowerShell Get-FileHash filename -Algorithm SHA256
Windows CMD certutil -hashfile filename SHA256

Hashing în cod

Exemple minime în patru limbaje comune când scrieți scripturi sau integrați API-uri.

JavaScript
async function sha256Hex(data) {
  const bytes = typeof data === "string"
    ? new TextEncoder().encode(data)
    : new Uint8Array(data);
  const digest = await crypto.subtle.digest("SHA-256", bytes);
  return [...new Uint8Array(digest)]
    .map((b) => b.toString(16).padStart(2, "0"))
    .join("");
}

// Text
console.log(await sha256Hex("hello"));

// Files: digest accepts an ArrayBuffer directly
const buf = await file.arrayBuffer();
console.log(await sha256Hex(buf));

Web Crypto nativ al browserului acceptă doar familia SHA și necesită HTTPS sau localhost; MD5 necesită o bibliotecă terță.

PHP
echo hash('sha256', 'hello');        // 64 hex characters
echo md5('hello');                   // same as hash('md5', 'hello')

// Streamed: hashes the file without loading it into memory
echo hash_file('sha256', 'setup.exe');

hash() și hash_file() suportă md5, sha1, sha256, sha512 și altele; hashing-ul fișierelor este în flux, deci folosește puțină memorie.

Python
import hashlib

print(hashlib.sha256(b"hello").hexdigest())
print(hashlib.md5(b"hello").hexdigest())

# Large files: streamed, low memory (Python 3.11+)
with open("setup.exe", "rb") as f:
    print(hashlib.file_digest(f, "sha256").hexdigest())

Biblioteca standard hashlib nu necesită instalare; folosiți file_digest() pentru hashing în flux al fișierelor mari (Python 3.11+).

Rust
use sha2::{Digest, Sha256};
use md5::Md5;

// Text
println!("{:x}", Sha256::digest(b"hello"));
println!("{:x}", Md5::digest(b"hello"));

// Large files: streamed, low memory
let mut file = std::fs::File::open("setup.exe")?;
let mut hasher = Sha256::new();
std::io::copy(&mut file, &mut hasher)?;
println!("{:x}", hasher.finalize());

Hashing nu face parte din biblioteca standard; adăugați cratele RustCrypto sha2 și md-5 în Cargo.toml. Cu caracteristica std activată, io::copy transferă fișierele în flux în hasher.

Întrebări frecvente

Textul și fișierele mele sunt încărcate?

Nu. Totul este calculat în browserul tău: apelurile din familia SHA folosesc API-ul Web Crypto încorporat, iar MD5 rulează în JavaScript-ul paginii. Instrumentul funcționează și fără conexiune la rețea — încearcă-l cu un fișier sensibil.

De ce textul gol are încă un hash?

Algoritmii hash definesc o ieșire unică, fixă, chiar și pentru zero octeți. MD5-ul unui șir gol este d41d8cd98f00b204e9800998ecf8427e, iar SHA-256 al său începe cu e3b0c442. Acest instrument pur și simplu ascunde rezultatele când intrarea este goală, astfel încât să nu le copiați din greșeală.

Poate genera hash-uri pentru fișiere de orice dimensiune?

Depinde de memoria disponibilă a browserului — instalatoarele și imaginile de disc de câțiva sute de MB funcționează, de obicei, bine. Fișierele sunt citite în memorie într-o singură trecere, așa că pentru fișiere de mai mulți GB preferați instrumentele din linia de comandă (sha256sum, certutil).

De ce hash-urile au lungimi diferite?

Lungimea este determinată de algoritm: MD5 are 32 de caractere hexazecimale, SHA-1 are 40, SHA-256 are 64, iar SHA-512 are 128. Două caractere hexazecimale per octet — și lungimea este independentă de dimensiunea intrării: un fișier de un octet și un fișier de mai mulți GB generează ambii 64 de caractere cu SHA-256.

Îl pot folosi pentru a genera semnături API?

Da. Multe platforme open semnează cereri prin hashing-ul "parametri + secret" cu MD5 sau SHA-256. Acest instrument este excelent pentru verificarea unei valori de semnătură în timpul depanării; în mediul de producție, calculați hash-urile în biblioteca limbajului dumneavoastră de pe server și nu încorporați niciodată secretul în codul frontend.

Cum compar o sumă de control cu acest instrument?

Comutați la fila "Sumă de control a fișierului", trageți fișierul în ea și lipiți suma de control de pe site-ul oficial în caseta de deasupra rezultatelor. Instrumentul detectează automat algoritmul după lungime (32 de caractere MD5, 40 SHA-1, 64 SHA-256, 96 SHA-384, 128 SHA-512): rândul care se potrivește devine verde cu nota "Trecut" când sunt de acord și roșu când nu. Majusculele, spațiile din jur și pauzele de rând sunt ignorate automat.

Instrumente conexe

Alte instrumente de codare, criptare și parole.