crypto.subtle.digest (SHA-256) în JavaScript

Fișiere și criptografie Browserele moderne (doar HTTPS), Node.js 15+

Calculează un hash (SHA-1, SHA-256, SHA-384, SHA-512) pentru un text sau un fișier.

Sintaxă
const hash = await crypto.subtle.digest("SHA-256", octeti);

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