SHA-256-hashgenerator

Bereken de SHA-256-hashwaarde van tekst, hex-bytes of elk bestand met de Web Crypto API in je browser. Plak een gepubliceerde controlesom in het veld Vergelijken met om een download te controleren.

Alle algoritmen

Werkt volledig in je browser. Er wordt niets geüpload.

Zo gebruik je het

  1. Typ of plak tekst, zet Invoer als op Hex voor hex-bytes, of open met Bestand openen het bestand dat je wilt controleren.
  2. Laat SHA-256 geselecteerd en kies als uitvoer hex (kleine letters), HEX (hoofdletters) of Base64.
  3. Plak de controlesom van de downloadpagina in het veld Vergelijken met. Komt overeen betekent dat het bestand identiek is.
  4. Kopieer het resultaat, of kopieer SHA-384, SHA-512 of een andere hashwaarde uit de tabel Alle algoritmen.

Wat is SHA-256?

SHA-256 is het meest gebruikte lid van de SHA-2-familie. Het is ontworpen door de NSA en in 2002 door NIST gestandaardiseerd in FIPS 180-2. Tegenwoordig is het vastgelegd in FIPS 180-4, en RFC 6234 beschrijft dezelfde algoritmen met referentiecode. SHA-256 verwerkt blokken van 512 bits in 64 rondes met 32-bits rekenkunde en levert een hashwaarde van 256 bits op: 64 hextekens of 44 Base64-tekens. Er is geen praktische botsings- of preimage-aanval bekend, en het is de standaardkeuze voor:

  • TLS-certificaten en -handshakes, en het ondertekenen van code;
  • Bitcoin, dat SHA-256 twee keer toepast voor blokhashes, proof of work en transactie-ID's (de controlesom in Base58Check-adressen komt uit dezelfde dubbele hash);
  • controlesombestanden zoals SHA256SUMS, hashwaarden van containerimages (sha256:...) en Subresource Integrity.

Een download controleren

Open het gedownloade bestand en plak de controlesom van de uitgever in het veld Vergelijken met. Hoofdletters of kleine letters maken niet uit, en een Base64-waarde werkt ook. Komt overeen betekent dat het bestand byte voor byte gelijk is aan het bestand waarvan de controlesom is gemaakt. Het bewijst niet wie het heeft gemaakt, dus haal de controlesom van de HTTPS-site van de uitgever of uit een ondertekend SHA256SUMS-bestand, en niet van de mirror waarvan je het bestand hebt gedownload.

Bij tekst gaat de hash over bytes, niet over tekens. Windows-regeleinden (CRLF), een byte order mark of UTF-16 in plaats van UTF-8 leveren elk een totaal andere SHA-256 op. Gebruik de keuzelijst Tekencodering of hex-invoer om precies de bytes te hashen die een ander systeem heeft gehasht.

Lengte-uitbreiding en wachtwoorden

Net als MD5, SHA-1 en SHA-512 is SHA-256 kwetsbaar voor lengte-uitbreiding (length extension): met SHA-256(secret + message) en de lengte van het geheim kan een aanvaller een geldige hash berekenen voor dat bericht, gevolgd door opvulling en gegevens naar keuze, zonder het geheim zelf te kennen. Wil je gegevens met een sleutel ondertekenen of authenticeren, gebruik dan HMAC-SHA256 uit de HMAC-generator in plaats van de sleutel en het bericht samen te hashen.

Snelheid is ook de reden dat een kale SHA-256 de verkeerde manier is om wachtwoorden op te slaan: wie de hashes in handen krijgt, kan wachtwoorden raden zo snel als zijn videokaarten SHA-256 kunnen berekenen, en identieke wachtwoorden leveren identieke hashes op. Gebruik Argon2id, scrypt, bcrypt of PBKDF2-HMAC-SHA256 met een hoog aantal iteraties; die voegen allemaal een salt toe.

SHA-256 op de opdrachtregel en in code

$ printf 'abc' | sha256sum
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad  -

sha256sum -c SHA256SUMS                  # Linux: een lijst met bestanden controleren
shasum -a 256 file.iso                   # macOS
certutil -hashfile file.iso SHA256       # Windows
Get-FileHash file.iso                    # PowerShell (SHA256 is de standaard)

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

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

De waarde voor abc is de testvector uit de standaard; typ hierboven abc om hetzelfde resultaat te zien. De tabel Alle algoritmen toont ook de SHA-384-, SHA-512-, SHA-1-, MD5- en CRC-waarden van je invoer.

Voorbeelden

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

Veelgestelde vragen

Kan SHA-256 worden ontsleuteld?

Nee. SHA-256 is een hashfunctie die maar in één richting werkt, geen versleuteling. Online "decrypters" zoeken hashes alleen op in tabellen met bekende invoer, dus ze vinden veelgebruikte wachtwoorden en korte strings, maar niets wat lang of willekeurig is.

Waarom komt mijn SHA-256 niet overeen met de gepubliceerde controlesom?

Meestal is de download onvolledig of een andere versie, of heb je de bestandsnaam gehasht in plaats van het bestand. Laad het bestand zelf met Bestand openen. Controleer ook of beide waarden hetzelfde algoritme gebruiken: een hexwaarde van 128 tekens komt van een 512-bits hash zoals SHA-512, niet van SHA-256.

Hoe krijg ik een SHA-256-hash in Base64?
Zet Uitvoer als op Base64. Subresource Integrity (waarden met sha256-, al komt sha384- vaker voor) en de HTTP-header Content-Digest gebruiken deze vorm. Hex en Base64 bevatten dezelfde 32 bytes; zet ze in elkaar om met Base64 naar hex.
Is SHA-256 hetzelfde als SHA-2?

SHA-2 is een familie: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 en SHA-512/256. SHA-256 is het meest gebruikte lid. SHA-3 (FIPS 202) is een apart ontwerp op basis van Keccak en geeft andere resultaten.

Hoe lang is een SHA-256-hash?
32 bytes: 64 hextekens of 44 Base64-tekens, eindigend op =. SHA3-256 en BLAKE2s hebben dezelfde lengte; de Hash-identifier toont zulke kandidaten voor een onbekende hash.