SHA-256 Hash Generator

SHA-256-hash genereren van willekeurige tekst

Invoertekst

Draait lokaal · Veilig om secrets te plakken

SHA-256-hash

SHA-256-hash verschijnt hier…

Wat is SHA-256-hashing?

SHA-256 (Secure Hash Algorithm 256-bit) is een cryptografische hashfunctie uit de SHA-2-familie, gepubliceerd door NIST in 2001 als onderdeel van FIPS 180-2 (bijgewerkt in FIPS 180-4). Ongeacht de invoer — een enkel teken, een bestand van meerdere gigabytes of een lege reeks — produceert SHA-256 een vaste 256-bit (32-byte) digest, die conventioneel wordt weergegeven als 64 hexadecimale tekens. SHA-256 is de meest gebruikte hashfunctie in productiesystemen van vandaag en vormt de basis voor TLS-certificaatketens, Bitcoin’s proof-of-work, Subresource Integrity (SRI) en code-signing-workflows.

SHA-256 is een eenrichtingsfunctie: het berekenen van een hash vanuit een invoer gaat snel (honderden megabytes per seconde op moderne hardware), maar het omgekeerde — een invoer vinden die een bepaalde hash oplevert — is rekenkundig onhaalbaar. Deze eigenschap, preimage-resistentie genaamd, maakt SHA-256 geschikt voor wachtwoordhashing (in combinatie met een salt en key-stretching), digitale handtekeningen en verificatie van gegevensintegriteit. In tegenstelling tot MD5 en SHA-1 is er geen botsings- of preimage-aanval aangetoond tegen volledig SHA-256.

De SHA-2-familie omvat zes varianten: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 en SHA-512/256. SHA-256 werkt met 32-bit woorden en 64 ronden per blok, geoptimaliseerd voor 32-bit processors. SHA-512 gebruikt 64-bit woorden en 80 ronden, wat op 64-bit platforms sneller kan zijn. Voor de meeste toepassingen waarbij een 256-bit digest volstaat, blijft SHA-256 de standaardaanbeveling van NIST, IETF en het CA/Browser Forum.

Waarom een online SHA-256-generator gebruiken?

Een SHA-256-hash genereren vereist normaal gesproken een terminalopdracht of een paar regels code. Met dit browsergebaseerde hulpmiddel berekent u SHA-256-digests zonder iets te installeren, van context te wisselen of een script te schrijven.

Direct hashen in uw browser
Plak of typ willekeurige tekst en ontvang de SHA-256-digest onmiddellijk. De Web Crypto API verwerkt de berekening native — geen JavaScript-bibliotheek vereist.
🔒
Privacy-first verwerking
Uw invoer verlaat nooit uw apparaat. Alle hashing wordt lokaal uitgevoerd via de ingebouwde Web Crypto API van de browser. Er worden geen gegevens naar een server verzonden.
📋
Kopieerklare uitvoerformaten
Ontvang de hash in kleine letters of hoofdletters hex met één klik. Handig bij het vergelijken van checksums van pakketbeheerders, CI-pipelines of documentatie.
🔍
Referentiewaarden controleren
Verifieer snel SHA-256-digests van downloadpagina’s, SBOM-manifests of auditlogboeken zonder een terminal te openen of wegwerpcode te schrijven.

SHA-256-gebruiksscenario’s

Frontend-ontwikkelaar — Subresource Integrity
Bereken de SHA-256-hash van een CDN-gehost script of stylesheet om het integrity-attribuut in script- en link-tags in te vullen, ter bescherming tegen manipulatie in de toeleveringsketen.
Backend-engineer — API-verzoek ondertekenen
Veel API’s (AWS Signature V4, Stripe-webhooks) vereisen SHA-256-hashes van verzoek-payloads. Gebruik dit hulpmiddel om referentiehashes te berekenen tijdens ontwikkeling en foutopsporing.
DevOps — Artefactverificatie
Verifieer SHA-256-checksums van gedownloade binaire bestanden, Docker-basisimages of Terraform-provider-plugins voordat u naar de productie-infrastructuur implementeert.
QA-engineer — Testvektor-validatie
Vergelijk SHA-256-uitvoer met NIST-testvektoren (FIPS 180-4-voorbeelden) om te bevestigen dat uw hashing-implementatie randgevallen correct verwerkt.
Data-engineer — Vingerafdrukken op rijniveau
Hash samengestelde sleutels of PII-velden met SHA-256 om deterministische, onomkeerbare vingerafdrukken te maken voor deduplicatie of pseudonimisering in datapipelines.
Student — Cryptografie-cursus
Experimenteer met SHA-256 om het lawine-effect te observeren: verander één teken in de invoer en zie hoe de volledige 64-tekens uitvoer onvoorspelbaar verandert.

Vergelijking SHA-2-familievarianten

SHA-256 maakt deel uit van de SHA-2-familie zoals gedefinieerd in FIPS 180-4. Elke variant maakt een afweging tussen digestgrootte, prestaties en veiligheidsmarge. De onderstaande tabel vergelijkt alle SHA-2-varianten die u waarschijnlijk zult tegenkomen.

VersieDigestgrootteHex-lengteBytegrootteGeschikt voor
SHA-256256 bits64 hex chars32 bytesTLS, blockchain, code signing, JWTs, SRI
SHA-224224 bits56 hex chars28 bytesTruncated SHA-256 — rare, specific compliance
SHA-384384 bits96 hex chars48 bytesGovernment / CNSS, higher collision margin
SHA-512512 bits128 hex chars64 bytesDigital signatures, HMAC with large keys
SHA-512/256256 bits64 hex chars32 bytesSHA-512 speed on 64-bit CPUs, 256-bit output

SHA-256 vs. SHA-1 vs. MD5 vs. SHA-3

Het kiezen van het juiste hashalgoritme hangt af van uw beveiligingsvereisten en compatibiliteitsbeperkingen. SHA-256 bezet het praktische optimum: het is veilig, universeel ondersteund (inclusief de Web Crypto API) en snel genoeg voor de meeste workloads. De onderstaande vergelijkingstabel behandelt de eigenschappen die het meest relevant zijn bij het kiezen van een hashfunctie.

EigenschapSHA-256SHA-1MD5SHA-3-256
Digest size256 bits (64 hex)160 bits (40 hex)128 bits (32 hex)256 bits (64 hex)
Security statusSecureBroken (2017)Broken (2004)Secure
Collision resistance2^128 operationsPractical attackPractical attack2^128 operations
Block size512 bits512 bits512 bits1600 bits (sponge)
Rounds64806424
StandardFIPS 180-4FIPS 180-4RFC 1321FIPS 202
Web Crypto APIYesYesNoNo
Primary use todayTLS, blockchain, SRILegacy git onlyNon-security checksumsBackup standard

Hoe SHA-256 intern werkt

SHA-256 verwerkt invoer in 512-bit (64-byte) blokken via een Merkle–Damgård-constructie. Het algoritme initialiseert acht 32-bit toestandswoorden (H0–H7), afgeleid van de fractionele delen van de vierkantswortels van de eerste acht priemgetallen. Elk blok doorloopt 64 mengrondes waarbij bitsgewijze bewerkingen (AND, XOR, NOT, rechtsom draaien, rechtsverschuiving) en 64 rondeconstanten worden gebruikt die zijn afgeleid van de derdemachtswortels van de eerste 64 priemgetallen.

Input: "hello world"
SHA-256: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
(256 bits = 32 bytes = 64 hex characters)
StapBeschrijving
PaddingAppend a 1-bit, then zeros until the message length is 448 mod 512. Append the original message length as a 64-bit big-endian integer.
Block splittingDivide the padded message into 512-bit (64-byte) blocks.
Message scheduleExpand each 16-word (32-bit) block into 64 words using sigma functions with right-rotate and right-shift operations.
CompressionProcess 64 rounds per block using Ch, Maj, and two Sigma functions with 64 round constants derived from cube roots of the first 64 primes.
OutputConcatenate the eight 32-bit state words (H0-H7) into a 256-bit (32-byte) digest, rendered as 64 hexadecimal characters.

Het lawine-effect zorgt ervoor dat het omdraaien van één bit in de invoer ongeveer 50% van de uitvoerbits verandert. Deze eigenschap, gecombineerd met een botsingsresistentie van 2^128, is de reden waarom SHA-256 in 2026 de basisaanbeveling blijft voor beveiligingsgevoelige toepassingen.

SHA-256-codevoorbeelden

SHA-256 is native beschikbaar in elke grote taal en runtime. De Web Crypto API biedt het in browsers zonder bibliotheek. De onderstaande voorbeelden tonen gebruikspatronen uit de praktijk, inclusief Unicode-invoerverwerking en bestandshashing.

JavaScript (Web Crypto API)
// Works in all modern browsers and Node.js 18+
async function sha256(text) {
  const data = new TextEncoder().encode(text)
  const hashBuffer = await crypto.subtle.digest('SHA-256', data)
  const hashArray = Array.from(new Uint8Array(hashBuffer))
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}

await sha256('hello world')
// → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"

// Node.js (built-in crypto module)
const crypto = require('crypto')
crypto.createHash('sha256').update('hello world').digest('hex')
// → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"
Python
import hashlib

# Basic SHA-256 hash
result = hashlib.sha256(b'hello world').hexdigest()
print(result)  # → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"

# Hash a string (encode to bytes first)
text = 'café ☕'
hashlib.sha256(text.encode('utf-8')).hexdigest()
# → "3eb53e00aa1bb4b1e8aab1ab38e56e6b8fb0b20e1cf7e1d19f36e4fad2537445"

# Hash a file in chunks (memory-efficient)
with open('release.tar.gz', 'rb') as f:
    sha = hashlib.sha256()
    for chunk in iter(lambda: f.read(8192), b''):
        sha.update(chunk)
    print(sha.hexdigest())
Go
package main

import (
    "crypto/sha256"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := sha256.Sum256(data)
    fmt.Printf("%x\n", hash)
    // → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
}
CLI (Linux / macOS)
# Using sha256sum (Linux) or shasum (macOS)
echo -n "hello world" | sha256sum
# → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9  -

# macOS
echo -n "hello world" | shasum -a 256
# → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9  -

# Verify a file checksum
echo "b94d27b...  myfile.bin" | sha256sum -c
# → myfile.bin: OK

# Using openssl (cross-platform)
echo -n "hello world" | openssl dgst -sha256
# → SHA2-256(stdin)= b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

Veelgestelde vragen

Is SHA-256 nog steeds veilig?
Ja. Tot 2026 is er geen praktische botsings-, preimage- of tweede-preimage-aanval aangetoond tegen volledig SHA-256. NIST, het CA/Browser Forum en IETF blijven SHA-256 aanbevelen voor TLS-certificaten, code signing en digitale handtekeningen. De theoretische botsingsresistentie bedraagt 2^128 bewerkingen, ruim buiten de huidige rekenmogelijkheden.
Wat is het verschil tussen SHA-256 en SHA-2?
SHA-2 is de familienaam voor zes hashfuncties: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 en SHA-512/256. SHA-256 is het meest gebruikte lid. Wanneer documentatie zegt "gebruik SHA-2", bedoelt het bijna altijd specifiek SHA-256, tenzij een langere digest vereist is.
Kan SHA-256 worden omgekeerd of ontsleuteld?
Nee. SHA-256 is een eenrichtings-hashfunctie, geen versleuteling. Er is geen sleutel en geen ontsleutelingsproces. De enige manier om de oorspronkelijke invoer te vinden is via een brute-force- of woordenboekaanval, wat rekenkundig onhaalbaar is voor voldoende complexe invoer. Voor korte of voorspelbare invoerwaarden (zoals veelgebruikte wachtwoorden) bestaan vooraf berekende rainbow tables, waardoor wachtwoordhashing altijd een salt en een specifieke KDF zoals bcrypt of Argon2 moet gebruiken.
Hoe verhoudt SHA-256 zich tot SHA-3?
SHA-3 (Keccak, FIPS 202) gebruikt een volledig andere interne structuur (sponsconstructie) dan SHA-256 (Merkle–Damgård). Zowel SHA-256 als SHA-3-256 produceren een 256-bit digest en bieden gelijkwaardige botsingsresistentie. SHA-3 is ontworpen als reserveoptie voor het geval SHA-2 gecompromitteerd raakt, maar SHA-2 is ongebroken gebleven. SHA-256 heeft bredere runtime-ondersteuning — de Web Crypto API ondersteunt SHA-256 maar niet SHA-3.
Is SHA-256 geschikt voor het hashen van wachtwoorden?
Niet direct. Een onbewerkte SHA-256-hash van een wachtwoord is kwetsbaar voor brute-force- en rainbow table-aanvallen omdat SHA-256 ontworpen is om snel te zijn. Gebruik voor wachtwoordopslag een speciale sleutelafleiding zoals bcrypt, scrypt of Argon2id, die een salt en een instelbare werkfactor toevoegen om aanvallen te vertragen.
Waarom gebruikt Bitcoin dubbel SHA-256?
Bitcoin berekent SHA-256(SHA-256(data)) (bekend als hash256) voor blokheaders en transactie-ID’s. De dubbele toepassing beschermt tegen length-extension-aanvallen, waarbij een aanvaller gegevens aan een bericht toevoegt en een geldige hash berekent zonder de oorspronkelijke invoer te kennen. Dit is een eigenschap van Merkle–Damgård-hashes die enkelvoudig SHA-256 niet voorkomt.
Wat is Subresource Integrity (SRI) en hoe verhoudt SHA-256 zich daartoe?
SRI is een W3C-specificatie waarmee browsers kunnen verifiëren dat een opgehaalde resource (script, stylesheet) niet is gemanipuleerd. U voegt een integrity-attribuut toe dat een Base64-gecodeerde SHA-256 (of SHA-384/SHA-512) hash bevat van de verwachte bestandsinhoud. De browser berekent de hash van het gedownloade bestand en weigert het uit te voeren als de hashes niet overeenkomen. SHA-256 is het minimale algoritme dat door SRI wordt ondersteund.