Ce face crypto.subtle.digest (SHA-256)
Un hash este o „amprentă” de lungime fixă a unor date: aceleași date dau mereu același hash, iar o mică schimbare dă unul complet diferit. Se folosește pentru verificarea integrității fișierelor și pentru chei de cache.
crypto.subtle.digest(algoritm, date) primește octeți (un Uint8Array sau ArrayBuffer) și returnează o promisiune cu un ArrayBuffer. Textul se transformă întâi cu TextEncoder. crypto.subtle conține și criptare, semnături și generare de chei.
Parametri
| Parametru | Descriere |
|---|---|
algoritm |
"SHA-1", "SHA-256", "SHA-384" sau "SHA-512". |
date |
Octeții de verificat. |
Ce returnează
O Promise cu un ArrayBuffer.
Exemple
Exemplul 1: SHA-256 pentru un text
async function sha256(text) {
const date = new TextEncoder().encode(text);
const hash = await crypto.subtle.digest("SHA-256", date);
return [...new Uint8Array(hash)].map((b) => b.toString(16).padStart(2, "0")).join("");
}
console.log(await sha256("Salut"));
console.log(await sha256("salut"));
Rezultat
75c4ec0328d2ec2e8cc1cfecda70808ab55a68645a100cd7b88b18ed9d44fd5d
ec9c3a34e791bda21bbcb69ea0eb875857497e0d48c75771b3d1adb5073ce791
Greșeli frecvente
- Salvezi parolele ca SHA-256 simplu. Este prea rapid și poate fi spart prin încercări; pentru parole folosește pe server un algoritm lent (bcrypt, Argon2).
Comenzi înrudite
TextEncoder / TextDecoder: Transformă textul în octeți UTF-8 (encode) și octeții înapoi în text (decode).Uint8Array.prototype.toHex / fromHex: Transformă octeți în text hexazecimal și înapoi.crypto.getRandomValues: Umple un typed array cu numere aleatorii sigure criptografic (pentru parole, tokenuri, chei).