SHA-256-hashgenerator

Beräkna SHA-256-hashvärdet för text, hexbyte eller valfri fil med Web Crypto API i webbläsaren. Klistra in en publicerad kontrollsumma i fältet Jämför med för att verifiera en nedladdning.

Alla algoritmer

Körs helt i din webbläsare. Inget laddas upp.

Så använder du verktyget

  1. Skriv eller klistra in text, välj Hex under Indata som för att ange hexbyte, eller klicka på Öppna fil och välj filen du vill kontrollera.
  2. Behåll SHA-256 under Algoritm och välj hex (gemener), HEX (versaler) eller Base64 under Utdata som.
  3. Klistra in kontrollsumman från nedladdningssidan i fältet Jämför med. Stämmer betyder att filen är identisk.
  4. Kopiera resultatet, eller kopiera SHA-384, SHA-512 eller ett annat hashvärde från tabellen Alla algoritmer.

Vad är SHA-256?

SHA-256 är den mest använda medlemmen i SHA-2-familjen. Den konstruerades av NSA och standardiserades av NIST 2002 i FIPS 180-2. I dag specificeras den i FIPS 180-4, och RFC 6234 beskriver samma algoritmer med referenskod. SHA-256 bearbetar block om 512 bitar i 64 rundor med 32-bitarsaritmetik och ger ett hashvärde på 256 bitar: 64 hextecken eller 44 Base64-tecken. Inga praktiska kollisions- eller urbildsattacker är kända, och SHA-256 är standardvalet för:

  • TLS-certifikat och handskakningar samt kodsignering;
  • Bitcoin, som tillämpar SHA-256 två gånger för blockens hashvärden, proof of work och transaktions-ID:n (kontrollsumman i Base58Check-adresser kommer från samma dubbla hashning);
  • kontrollsummefiler som SHA256SUMS, hashvärden för containeravbildningar (sha256:...) och Subresource Integrity.

Verifiera en nedladdning

Klicka på Öppna fil, välj den nedladdade filen och klistra in utgivarens kontrollsumma i fältet Jämför med. Skiftläget spelar ingen roll, och ett Base64-värde fungerar också. Stämmer betyder att filen är byte för byte densamma som den som kontrollsumman beräknades från. Det bevisar inte vem som skapade den, så hämta kontrollsumman från utgivarens HTTPS-webbplats eller en signerad SHA256SUMS-fil och inte från den spegelserver som levererade nedladdningen.

För text beräknas hashvärdet över byte, inte tecken. Windows-radslut (CRLF), ett byteordningsmärke (BOM) eller UTF-16 i stället för UTF-8 ger var för sig en helt annan SHA-256. Använd listan Teckenkodning eller hexindata för att hasha exakt de byte som ett annat system hashade.

Längdförlängning och lösenord

Precis som MD5, SHA-1 och SHA-512 är SHA-256 sårbar för längdförlängning (length extension): med SHA-256(secret + message) och hemlighetens längd kan en angripare beräkna ett giltigt hashvärde för samma meddelande följt av utfyllnad och valfri data, utan att känna till hemligheten. För att signera eller autentisera data med en nyckel använder du HMAC-SHA256 från HMAC-generatorn i stället för att hasha nyckeln och meddelandet tillsammans.

Hastigheten är också anledningen till att enbart SHA-256 är fel sätt att lagra lösenord: den som kommer över hashvärdena kan testa gissningar lika snabbt som grafikkorten beräknar SHA-256, och identiska lösenord ger identiska hashvärden. Använd Argon2id, scrypt, bcrypt eller PBKDF2-HMAC-SHA256 med ett högt antal iterationer; alla lägger till ett salt.

SHA-256 på kommandoraden och i kod

$ printf 'abc' | sha256sum
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad  -

sha256sum -c SHA256SUMS                  # Linux: kontrollera en lista med filer
shasum -a 256 file.iso                   # macOS
certutil -hashfile file.iso SHA256       # Windows
Get-FileHash file.iso                    # PowerShell (SHA256 är standard)

# Python
hashlib.sha256(data).hexdigest()

// Node.js
crypto.createHash('sha256').update(data).digest('hex')

Värdet för abc är testvektorn från standarden; skriv abc ovan för att se samma resultat. Tabellen Alla algoritmer listar dessutom SHA-384, SHA-512, SHA-1, MD5 och CRC-värden för din indata.

Exempel

Indata (UTF-8)SHA-256
Hello, World!dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f
Base64.is63f2f446bc11a1f96175c0f77bdac08ca1b184ba42c3a42c34ddcbce00b1b800
你好670d9743542cae3ea7ebe36af56bd53648b0a1126162e78d81a32934a711302e

Vanliga frågor

Kan SHA-256 dekrypteras?

Nej. SHA-256 är en envägs hashfunktion, inte kryptering. "Dekrypterare" på nätet slår bara upp hashvärden i tabeller över kända indata, så de hittar vanliga lösenord och korta strängar men inget som är långt eller slumpmässigt.

Varför stämmer inte mitt SHA-256-värde med den publicerade kontrollsumman?

Oftast är nedladdningen ofullständig eller en annan version, eller så har du hashat filnamnet i stället för filen. Läs in själva filen med Öppna fil. Kontrollera också att båda värdena kommer från samma algoritm: ett hexvärde på 128 tecken kommer från en hashfunktion på 512 bitar som SHA-512, inte från SHA-256.

Hur får jag ett SHA-256-hashvärde i Base64?
Välj Base64 under Utdata som. Subresource Integrity (värden med sha256-, även om sha384- är vanligare) och HTTP-headern Content-Digest använder den formen. Hex och Base64 innehåller samma 32 byte; konvertera mellan dem med Base64 till hex.
Är SHA-256 samma sak som SHA-2?

SHA-2 är en familj: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 och SHA-512/256. SHA-256 är dess vanligaste medlem. SHA-3 (FIPS 202) är en separat konstruktion baserad på Keccak och ger andra resultat.

Hur långt är ett SHA-256-hashvärde?
32 byte: 64 hextecken eller 44 Base64-tecken som slutar med =. SHA3-256 och BLAKE2s har samma längd; verktyget Identifiera hashtyp listar sådana möjliga algoritmer för ett okänt hashvärde.