Exemple de folosire a hash-urilor
Variante gata făcute: copiază codul direct sau deschide exemplul în generator și modifică-l după nevoie.
# Linux
sha256sum ubuntu.iso
# macOS
shasum -a 256 ubuntu.iso
# Windows (PowerShell sau cmd)
certutil -hashfile ubuntu.iso SHA256
const data = new TextEncoder().encode('Salut, lume!');
const buf = await crypto.subtle.digest('SHA-256', data);
const hex = [...new Uint8Array(buf)].map(b => b.toString(16).padStart(2, '0')).join('');
<?php
echo hash('sha256', 'Salut, lume!');
echo md5('Salut, lume!');
# Python
import hashlib
hashlib.sha256('Salut, lume!'.encode()).hexdigest()
<?php
$hash = password_hash($parola, PASSWORD_DEFAULT); // bcrypt sau Argon2
if (password_verify($parola, $hash)) {
// parola e corectă
}
Cum folosești generatorul de hash
- Scrie sau lipește textul în câmp ori apasă Alege un fișier.
- Alege dacă rezultatul să fie cu litere mici sau litere mari.
- Copiază hash-ul de care ai nevoie: MD5, SHA-1, SHA-256, SHA-384 sau SHA-512 sunt calculate toate deodată.
Calculul se face în browser, inclusiv pentru fișiere; nimic nu se trimite către server.
Ce este un hash
O funcție hash transformă orice date într-un șir de lungime fixă: SHA-256 dă mereu 64 de caractere hexazecimale, fie că pornești de la un cuvânt sau de la un fișier de 4 GB. Este într-un singur sens: din hash nu poți obține datele înapoi. Cea mai mică schimbare în date dă un hash complet diferit.
MD5 și SHA-1 sunt considerate sparte pentru securitate, pentru că se pot construi intenționat două fișiere diferite cu același hash. Ca sumă de control împotriva erorilor de descărcare sunt încă folosite, dar pentru semnături și verificări de securitate folosește SHA-256 sau mai mare.
Verificarea unui fișier descărcat
Multe proiecte publică hash-ul SHA-256 lângă fișierul de descărcat. Calculează-l pe al tău și compară-le: dacă diferă, fișierul e incomplet sau modificat.
# Linux
sha256sum ubuntu.iso
# macOS
shasum -a 256 ubuntu.iso
# Windows (Command Prompt sau PowerShell)
certutil -hashfile ubuntu.iso SHA256
Get-FileHash ubuntu.iso
Nu salva parole cu MD5 sau SHA
Aceste funcții sunt făcute să fie rapide, deci și ghicirea parolelor e rapidă. Pentru parole folosește algoritmi lenți, cu sare: bcrypt sau Argon2. În PHP sunt deja incluși:
$hash = password_hash($parola, PASSWORD_DEFAULT);
if (password_verify($parolaIntrodusa, $hash)) {
// parolă corectă
}
Detalii găsești în Învață PHP.
Întrebări frecvente
Pot decripta un hash MD5?
Nu, un hash nu este criptare. Site-urile care „decriptează” MD5 caută de fapt în liste cu hash-uri ale unor parole și texte cunoscute.
De ce am alt hash decât cel așteptat pentru același text?
De obicei din cauza unui spațiu sau a unui rând nou la final, ori a codificării diferite a diacriticelor. Aici textul este codat în UTF-8.