Skip to content

SHA-3 Hash-generator (Keccak SHA3-256)

Genereer SHA-3 hashes online gratis. NIST FIPS 202 sponge-constructie — de post-SHA-2 standaard. SHA3-256 output in 64 hex-tekens. Alleen browser via lazy-loaded js-sha3; geen uploads.

Geen tracking Draait in je browser Gratis
SHA-3 hash-berekeningen vinden plaats in je browser via de js-sha3 bibliotheek. Er worden geen gegevens naar een server verstuurd.
Algoritme
Beoordeeld op SHA3-256 correctheid aan de hand van NIST FIPS 202 CAVP testvectoren; Keccak versus SHA-3 padding-onderscheid geverifieerd — Go Tools Engineering Team · May 28, 2026

Wat is SHA-3?

SHA-3 (Secure Hash Algorithm 3) is de derde generatie van NIST's Secure Hash Standard, gestandaardiseerd in FIPS 202 in augustus 2015. In tegenstelling tot SHA-1 en SHA-2, die zijn gebaseerd op de Merkle-Damgård-constructie, gebruikt SHA-3 een radicaal ander ontwerp genaamd de sponge-constructie — een keuze die NIST bewust maakte om te garanderen dat een cryptanalytische doorbraak van SHA-2 SHA-3 niet automatisch zou compromitteren.

De NIST SHA-3-competitie (2007–2012): NIST vroeg in 2007 wereldwijd om openbare inzendingen. Na drie evaluatieronden werden 64 kandidaten teruggebracht tot vijf finalisten: BLAKE, Grøstl, JH, Keccak en Skein. In oktober 2012 werd Keccak — ontworpen door Guido Bertoni, Joan Daemen, Michaël Peeters en Gilles Van Assche van STMicroelectronics en NXP Semiconductors — geselecteerd als winnaar. Alle vijf finalisten werden als veilig beschouwd; het unieke sponge-gebaseerde ontwerp van Keccak gaf het de structurele diversiteit die NIST prioriteit gaf.

De sponge-constructie: SHA-3 absorbeert invoer in een 1600-bit toestand (de Keccak-f[1600] permutatie) in de absorptiefase, en perst daarna outputbits uit de toestand in de uitpersing-fase. Voor SHA3-256 is de snelheids-/capaciteitsverhouding 1088/512 bits. Omdat slechts 256 van de 1600 interne toestandsbits in de output verschijnen, kan een aanvaller de volledige toestand niet uit de hash reconstrueren — waardoor length-extension aanvallen structureel onmogelijk zijn. Dit staat in contrast met SHA-256, waarbij de volledige interne toestand in de output wordt blootgesteld, waarvoor HMAC nodig is om length-extension aanvallen te voorkomen.

SHA-3 versus Keccak — het paddingverschil: NIST wijzigde de originele Keccak-inzending door de domeinscheiding-padding te veranderen van 0x01 naar 0x06. Dit betekent dat NIST SHA3-256 en originele Keccak-256 voor elke invoer verschillende 64-hex-tekens output produceren. Dit is geen theoretische kwestie — het is de reden waarom Ethereum's keccak256 (bevroren voordat FIPS 202 werd gefinaliseerd) verschilt van de SHA3-256 output van deze tool voor dezelfde string. Gebruik deze tool nooit om Ethereum-adresafleiding te repliceren.

FIPS 202 definieert vier SHA-3 varianten: SHA3-224 (56 hex-tekens), SHA3-256 (64 hex-tekens), SHA3-384 (96 hex-tekens), SHA3-512 (128 hex-tekens). Deze tool implementeert SHA3-256, de meest gangbare variant en de meest direct vergelijkbaar met SHA-256.

Bibliotheekopmerking: SHA-3 maakt nog geen deel uit van de Web Crypto API-specificatie van de browser (crypto.subtle ondersteunt alleen SHA-1, SHA-256, SHA-384, SHA-512). Deze tool laadt de js-sha3 JavaScript-bibliotheek (~10 KB gecomprimeerd) bij het eerste gebruik. Na die ene download worden alle berekeningen lokaal in je browser uitgevoerd — er worden nooit invoergegevens verzonden.

Wanneer SHA-3 gebruiken: nieuwe protocollen die structurele diversiteit van SHA-2 vereisen; keyed MAC's zonder de HMAC-wrapper (KMAC128/256 per NIST SP 800-185); post-quantum afdekking als SHA-2 back-up; compliance met systemen die FIPS 202 verplichten. Wanneer bij SHA-256 blijven: universele bibliotheekondersteuning, hardwareversnelling (SHA-NI extensies), bestaande protocolcompatibiliteit en de meeste dagelijkse integriteitsgebruiksgevallen waarbij SHA-256 al de gevestigde standaard is.

// SHA-3 (NIST FIPS 202 SHA3-256) using js-sha3 library
import { sha3_256 } from 'js-sha3';

const hash = sha3_256('Hello, World!');
// → '882f4b6991a775295186a4e3cc5ece9fc0b618c8c3e7a7beafdd0f56f13ae43b'

// Note: this differs from Ethereum's keccak256 for the same input:
// keccak256('Hello, World!') = 'acaf3289d7b601cbd114fb36c4d29c85bbfd5e133f14cb355c3fd8d99367964f'
// The difference is the padding byte: 0x06 (SHA-3) vs 0x01 (original Keccak)

SHA-3 voorbeelden

NIST FIPS 202 testvector verifiëren

abc
3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532

SHA3-256("abc") = 3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532 — dit is de officiële NIST FIPS 202 testvector. Plak "abc" in de tool en bevestig deze exacte output om te verifiëren dat je NIST SHA-3 berekent (niet originele Keccak). Deze ene test onderscheidt een FIPS-conforme SHA-3 implementatie van een die de oudere Keccak-paddingbyte gebruikt.

Keccak versus SHA-3 onderscheid — zelfde invoer, andere output

Hello

SHA3-256("Hello") van deze tool (NIST FIPS 202) = 8ca66ee6b2fe4bb928a8e3cd2f508de4119c0895f22df86f0ab7e30e487e4500. Ethereum's keccak256("Hello") = 06b3dfaec148fb1bb2b066f10ec285e7c9bf402ab32aa78a5d38e34566810cd2. Zelfde invoer, verschillende 64-hex-tekens output. Het verschil is het padding-achtervoegsel: NIST SHA-3 gebruikt 0x06 terwijl originele Keccak (dat Ethereum in 2013 heeft bevroren) 0x01 gebruikt. Ethereum dateert van vóór NIST's standaardisering in 2015 en heeft permanent een afsplitsing gemaakt van de FIPS 202 variant.

Post-quantum archief-hash

NIST SP 800-57 Part 1 Rev 5 — Recommendation for Key Management

SHA3-256 biedt 128-bit preimage-weerstand tegen Grover's algoritme op een kwantumcomputer — hetzelfde effectieve beveiligingsniveau als SHA-256 tegen kwantumaaanvallen. Voor gegevens die na 2050 aantoonbaar ongewijzigd moeten blijven, biedt het gebruik van SHA-3 naast SHA-256 verdediging in de diepte: als een doorbraak wordt gevonden in de constructie van één algoritme (Merkle-Damgård voor SHA-2; Keccak sponge voor SHA-3), blijft het andere veilig. Institutionele archieven en overheidsdocumenten gebruiken steeds vaker dubbele-hash-manifesten (SHA-256 + SHA3-256) als beveiligingsafdekking. Zie ook SHA-256 Generator voor de SHA-2 kant van deze afdekking.

HMAC-SHA3-256 keyed authenticatie

POST /api/ledger
{"amount":250000,"from":"acct-A","to":"acct-B"}

HMAC-SHA3-256 is een modern alternatief voor HMAC-SHA-256 voor keyed berichtauthenticatie. Omdat SHA-3's sponge-constructie van opzet bestand is tegen length-extension aanvallen (de squeeze-fase verwijdert interne toestand), is een gewone SHA3-256 keyed MAC (KMAC, gedefinieerd in NIST SP 800-185) ook veilig — anders dan gewone SHA-256, dat de HMAC-wrapper nodig heeft om te verdedigen tegen length-extension aanvallen. Voor nieuwe high-assurance API's en financiële systemen biedt HMAC-SHA3-256 (of KMAC128) sterkere architecturale garanties dan HMAC-SHA-256. Plak hier een canonieke aanvraagtekst om de SHA3-256 vingerafdruk te inspecteren vóór het toepassen van HMAC.

Zo genereer je SHA-3 hashes

  1. 1

    Tekst in het invoerveld plakken

    Selecteer het tabblad Tekst en typ of plak een willekeurige string. De SHA3-256 hash wordt live bijgewerkt terwijl je typt. Bij het eerste gebruik wordt de js-sha3 bibliotheek (~10 KB) opgehaald en gecached — je merkt mogelijk een korte vertraging bij de allereerste hash; alle volgende hashes zijn direct. Het algoritme staat al op SHA-3 (NIST FIPS 202 SHA3-256).

  2. 2

    De 64-tekens hex output kopiëren

    Klik op de knop Kopiëren naast het hash-resultaat. De 64-tekens hex string in kleine letters wordt naar je klembord gekopieerd. Gebruik de schakelaar Hoofdletters als je doelsysteem hoofdletters vereist. Deze output komt overeen met wat elke FIPS 202-conforme SHA3-256 implementatie produceert — maar let op dat het verschilt van Ethereum's keccak256 voor dezelfde invoer.

  3. 3

    Verifiëren met het tabblad Vergelijken

    Ga naar het tabblad Vergelijken en plak twee SHA3-256 hashes naast elkaar. De tool gebruikt constante-tijd vergelijking om overeenkomst of geen overeenkomst te melden zonder timing-informatie te lekken. Handig voor het verifiëren van NIST CAVP testvectoren, het controleren van archief-manifesten, of het bevestigen dat twee SHA3-256 implementaties identieke output produceren.

Technische details

Algoritme: Keccak-f[1600] sponge-constructie
SHA3-256 past de Keccak-f[1600] permutatie toe (24 rondes van theta, rho, pi, chi, iota-bewerkingen op een 5×5×64 toestandsarray) in een sponge-constructie met snelheid=1088 bits en capaciteit=512 bits. Invoer wordt geabsorbeerd in 136-byte (1088-bit) blokken; 256 bits output worden uitgeperst. De FIPS 202 domeinscheider voegt 0x06 toe vóór padding. Implementatie: NIST FIPS 202 (2015) sectie 6.
Output: SHA3-256 standaard, 64 hexadecimale tekens (FIPS 202 definieert ook 224/384/512)
Deze tool geeft SHA3-256 als output: altijd precies 64 hexadecimale tekens (256 bits = 32 bytes). NIST FIPS 202 standaardiseert ook SHA3-224 (56 tekens), SHA3-384 (96 tekens) en SHA3-512 (128 tekens) — allemaal met dezelfde Keccak-f[1600] permutatie maar met verschillende snelheids-/capaciteitsverhoudingen. De output-lengte is vast, ongeacht de invoergrootte.
Prestaties: lazy-loaded js-sha3 (~10 KB); ~150–400 MB/s in browser
In tegenstelling tot SHA-2 routes (die de ingebouwde Web Crypto API van de browser gebruiken) maakt SHA-3 geen deel uit van de Web Crypto-specificatie. Deze tool laadt de js-sha3 bibliotheek (~10 KB gecomprimeerd) bij het eerste gebruik en cachet deze daarna. Typische doorvoer: 150–400 MB/s in JavaScript, versus 400–700 MB/s voor SHA-256 via Web Crypto. Voor tekst-verwerking (kilobytes) is het verschil onmerkbaar. De hoofdbundel voor andere SHA-routes wordt niet beïnvloed door deze lazy load.
Standaarden: NIST FIPS 202 (2015), NIST SP 800-185 (KMAC), NIST IR 8105
Gestandaardiseerd in FIPS 202 (augustus 2015). NIST SP 800-185 (2016) definieert KMAC128 en KMAC256 — op SHA-3 gebaseerde keyed MAC-functies die van opzet immuun zijn voor length-extension aanvallen zonder de HMAC-wrapper. NIST IR 8105 beveelt SHA-3 varianten aan voor post-quantum beveiligingsmarges. Momenteel goedgekeurd voor alle beveiligingsniveaus tot 2030 en daarna onder NIST SP 800-131A Rev 2.

Aanbevolen aanpak

Verwar SHA3-256 niet met Ethereum's keccak256
Het zijn verschillende algoritmen met verschillende output voor elke invoer. Deze tool berekent NIST FIPS 202 SHA3-256 (paddingbyte 0x06). Ethereum's keccak256 gebruikt originele Keccak-padding (0x01). Als je Ethereum-adressen berekent, EVM-opslagslots of Solidity keccak256()-resultaten, heb je een keccak256-specifieke tool nodig — deze tool geeft je verkeerde antwoorden voor die gebruiksgevallen.
Gebruik SHA-3 als aanvulling op SHA-256, niet als vervanging
SHA-3 en SHA-2 gebruiken structureel verschillende ontwerpen (sponge versus Merkle-Damgård). Een dubbel-hash-manifest (SHA-256 + SHA3-256) biedt verdediging in de diepte: als ooit een cryptanalytische doorbraak wordt gevonden in de constructie van één familie, blijft de andere veilig. Voor langetermijnarchiveergegevens en overheidsdossiers beveelt NIST aan deze benadering met twee algoritmen te overwegen. Voor dagelijks gebruik volstaat SHA-256 alleen.
Geef de voorkeur aan KMAC boven HMAC-SHA3-256 voor nieuwe keyed MAC-ontwerpen
NIST SP 800-185 definieert KMAC128 en KMAC256 — doelgebouwde keyed MAC's op basis van SHA-3. Omdat de sponge-constructie van opzet immuun is voor length-extension aanvallen, heeft KMAC de dubbele hash-wrapper niet nodig die HMAC voor veiligheid vereist. Voor nieuwe protocollen die flexibiliteit hebben in de keuze van MAC-algoritme, zijn KMAC128 (128-bit beveiliging) of KMAC256 (256-bit beveiliging) eenvoudiger en iets efficiënter dan HMAC-SHA3-256.
Gebruik constante-tijd vergelijking bij het verifiëren van SHA-3 hashes in code
Gebruik bij het vergelijken van twee SHA3-256 hashes in code altijd een constante-tijd gelijkheidsfunctie: Node.js crypto.timingSafeEqual(), Python hmac.compare_digest(), Go subtle.ConstantTimeCompare(). Naïeve stringvergelijking (=== of ==) lekt timing-informatie waarmee een aanvaller de verwachte hash byte voor byte kan reconstrueren. Dit geldt evenzeer voor SHA-3 als voor alle andere hashfuncties. Het tabblad Vergelijken van deze tool gebruikt al constante-tijd vergelijking.

Veelgestelde vragen over SHA-3

Is SHA-3 hetzelfde als Keccak?
Vergelijkbaar, maar niet identiek. SHA-3 is gebaseerd op het Keccak-algoritme, dat de NIST SHA-3-competitie van 2007–2012 won, maar NIST wijzigde de paddingregel tijdens de standaardisering. Originele Keccak voegt een achtervoegsel-byte 0x01 toe vóór padding; NIST SHA-3 (FIPS 202, 2015) voegt 0x06 toe. Dit enkelvoudige byte-verschil betekent dat SHA3-256 en Keccak-256 voor elke invoer verschillende 64-tekens output produceren. De algoritmen zijn structureel verder identiek — dezelfde Keccak-f[1600] permutatie, dezelfde sponge-constructie. Wanneer iemand in de Ethereum/blockchain context "Keccak" zegt, bedoelen ze bijna altijd de originele pre-FIPS paddings-variant, niet NIST SHA-3.
Waarom gebruikt Ethereum keccak256 en niet SHA-3?
Ethereum werd ontworpen in 2013–2014 en gelanceerd in 2015 — vóór NIST SHA-3 in augustus 2015 finaliseerde. Toen Ethereum's protocol werd bevroren, was het originele voorstel van het Keccak-team de referentie-implementatie. NIST wijzigde de padding tijdens de standaardisering, maar Ethereum kon de FIPS 202-variant niet achteraf adopteren zonder consensus te breken (elk knooppunt moet identieke hashes berekenen). Het resultaat is een permanente afsplitsing: Ethereum's keccak256 gebruikt de originele Keccak-padding (0x01), terwijl de SHA3-256 van deze tool de NIST FIPS 202-padding (0x06) gebruikt. Hetzelfde structurele algoritme, andere output. Gebruik deze tool nooit om Ethereum-adresafleiding of EVM keccak256 te repliceren — je krijgt verkeerde resultaten.
Wat is de sponge-constructie?
De sponge-constructie is SHA-3's alternatief voor SHA-2's Merkle-Damgård-chaining. In plaats van invoer blok voor blok te comprimeren tot een doorlopende hash-toestand (Merkle-Damgård), heeft de sponge twee fasen: absorptie (invoer wordt ge-XOR'd in een deel van de toestand en meerdere keren gemengd met de Keccak-f[1600] permutatie) en uitpersing (uitvoerbits worden uit de toestand gelezen). Het kritieke beveiligingsvoordeel: de interne toestand is groter dan de output — SHA3-256 gebruikt een 1600-bit toestand maar geeft slechts 256 bits output, waardoor 1344 bits verborgen toestand achterblijft. Een aanvaller die alleen de 256-bit output ziet, kan de volledige toestand niet reconstrueren om het bericht uit te breiden, waardoor length-extension aanvallen structureel onmogelijk zijn zonder een wrapper. Dit verschilt van SHA-256, waarvoor HMAC nodig is om length-extension aanvallen te voorkomen.
Moet ik SHA-3 gebruiken in plaats van SHA-2?
Niet standaard — zowel SHA-256 als SHA3-256 zijn momenteel veilig en door NIST goedgekeurd. SHA-3 is ontworpen als structurele reserveoptie voor SHA-2: omdat ze volledig verschillende ontwerpen gebruiken (Merkle-Damgård versus sponge), compromitteert een doorbraak in één algoritme het andere niet. Gebruik SHA-3 wanneer: (1) je protocol het expliciet vereist, (2) je length-extension immuniteit nodig hebt zonder de HMAC-wrapper, (3) je een nieuw systeem bouwt dat toekomstbestendige algoritme-wendbaarheid wil, of (4) je organisatie een SHA-3 back-up hash naast SHA-256 verplicht. Voor dagelijkse bestandschecksums en certificaatvingerafdrukken blijft SHA-256 de universele standaard met betere bibliotheek- en hardwareondersteuning.
Is SHA-3 sneller dan SHA-256?
In software doorgaans langzamer. SHA3-256 bereikt doorgaans 150–400 MB/s in JavaScript in de browser, vergeleken met 400–700 MB/s voor SHA-256 via de Web Crypto API (die de ingebouwde SHA-2 implementatie op C-niveau van de browser gebruikt). In speciale hardware en ASICs (bijv. aangepaste beveiligingschips) is SHA-3's Keccak-f[1600] permutatie vaak sneller omdat het beter paralleliseert en alleen eenvoudige bitsgewijze bewerkingen gebruikt (XOR, AND, rotatie) — geen modulaire optelling. SHA-3 presteert ook beter dan SHA-2 op 32-bit embedded hardware in veel gevallen. Voor browsergebaseerde tools is dit prestatieverschil onmerkbaar; voor bulk-bestandsverwerking maakt het verschil.
Hoe lang is een SHA-3 hash van deze tool?
Deze tool gebruikt standaard SHA3-256, wat altijd precies 64 hexadecimale tekens produceert (256 bits = 32 bytes, 2 hex-tekens per byte). NIST FIPS 202 definieert ook SHA3-224 (56 hex-tekens), SHA3-384 (96 hex-tekens) en SHA3-512 (128 hex-tekens). Alle delen dezelfde Keccak-f[1600] permutatie; alleen de capaciteits-/snelheidsverhouding en de output-lengte verschillen. Ter vergelijking: SHA-256 produceert ook 64 hex-tekens, maar het zijn andere 64-tekens strings voor dezelfde invoer.
Is SHA-3 kwantumbestendig?
Gedeeltelijk. Grover's algoritme op een kwantumcomputer kan de zoekruimte van elke hashfunctie tot de wortel terugbrengen, waardoor het beveiligingsniveau effectief wordt gehalveerd. SHA3-256 heeft 256 bits preimage-weerstand, wat wordt teruggebracht tot 128 bits bij een kwantumaaanval — nog steeds veilig onder elk dreigingsmodel op korte termijn. Het belangrijke voordeel boven SHA-2: SHA-3's sponge-constructie staat los van Merkle-Damgård, zodat het niet wordt beïnvloed door cryptanalytische technieken die specifiek gericht zijn op SHA-2's compressiefunctie. NIST's post-quantum richtlijnen bevelen SHA-3 aan als de voorkeurshash voor nieuwe protocollen die ontwerpdiversiteit naast SHA-2 willen.
Worden mijn gegevens naar een server verstuurd bij gebruik van deze tool?
Nee. Na het initiële laden van de bibliotheek (het js-sha3 script wordt eenmalig opgehaald van een CDN, ~10 KB) worden alle hash-berekeningen volledig in je browser in JavaScript uitgevoerd. Open DevTools → tabblad Netwerk terwijl je tekst hasht — je ziet nul uitgaande verzoeken met je invoergegevens. In tegenstelling tot de SHA-2 tools op deze site (die de ingebouwde Web Crypto API van de browser gebruiken) maakt SHA-3 nog geen deel uit van de Web Crypto-specificatie, waardoor een JavaScript-bibliotheek vereist is. De download van de bibliotheek is het enige netwerkverzoek; je tekst verlaat de pagina nooit. Zie ook: de SHA-256 generator en MD5 generator gebruiken helemaal geen externe bibliotheek.
Wat was de NIST SHA-3-competitie?
NIST organiseerde van 2007 tot 2012 een open competitie om een derde Secure Hash Algorithm-standaard te selecteren — niet om SHA-2 te vervangen (dat veilig blijft), maar om het hash-algoritmelandschap te diversifiëren voor het geval SHA-2 ooit zou worden gebroken. 64 initiële inzendingen werden teruggebracht tot 5 finalisten: BLAKE, Grøstl, JH, Keccak en Skein. Keccak, ontworpen door Guido Bertoni, Joan Daemen, Michaël Peeters en Gilles Van Assche (van STMicroelectronics en NXP Semiconductors), werd in oktober 2012 als winnaar geselecteerd en gestandaardiseerd als SHA-3 in NIST FIPS 202 in augustus 2015. De selectie was opmerkelijk omdat er voor een fundamenteel ander ontwerp dan SHA-2 werd gekozen in plaats van een evolutionaire variant.
Is SHA-3 kwetsbaar voor length-extension aanvallen?
Nee — van opzet. Length-extension aanvallen maken gebruik van het feit dat Merkle-Damgård-constructies (SHA-256, SHA-512, MD5) de interne toestand in de hash-output blootstellen, waardoor een aanvaller gegevens aan een gehasht bericht kan toevoegen zonder het geheime voorvoegsel te kennen. SHA-3's sponge-constructie vermijdt dit volledig: de 1600-bit interne toestand is groter dan de 256-bit output, zodat de output niet genoeg toestand onthult om het bericht uit te breiden. Dit betekent dat je gewone SHA3-256 veilig kunt gebruiken als een keyed MAC primitief (KMAC), terwijl het gebruik van gewone SHA-256 als een keyed MAC (HASH(sleutel || bericht)) onveilig is zonder de HMAC-wrapper.

Gerelateerde tools

Alle tools bekijken →