UTILS.
Standaard privé
🧂

scrypt KDF-hashgenerator & -verificatie

Leid een scrypt-sleutel af uit een wachtwoord met instelbare N-, r-, p-cost, of verifieer een wachtwoord tegen een opgeslagen scrypt-string. Draait volledig in je browser.

Je bestanden blijven op dit apparaat

Bestanden worden in je browser verwerkt, nooit geüpload. De site downloadt de benodigde code en bestanden. Geen accounts of trackers.

Gebruik Downloaden om deze tool als één HTML-bestand op te slaan voor offline gebruik.

Privacy →

Wachtwoorden worden 100% in je browser gehasht — er wordt niets geüpload.

— uitvoer verschijnt hier —

Over deze tool

De scrypt KDF-hashgenerator & -verificatie leidt scrypt-uitvoer lokaal in je browser af en controleert deze. scrypt, ontworpen door Colin Percival en gestandaardiseerd in RFC 7914, is een memory-hard key derivation function: de cost wordt bewust gedomineerd door geheugenbandbreedte, zodat aangepaste kraakhardware weinig voordeel behaalt. De pijplijn is PBKDF2-HMAC-SHA256 om het wachtwoord uit te breiden, de ROMix-functie gebouwd op BlockMix en de Salsa20/8-kern om groot sequentieel geheugengebruik af te dwingen, en een laatste PBKDF2-HMAC-SHA256 om de afgeleide sleutel van de door jou gekozen lengte te produceren.

De Generate-modus leest 16 willekeurige salt-bytes uit crypto.getRandomValues en draait scrypt met drie cost-parameters: N is de CPU/geheugen-cost en moet een macht van twee zijn (standaard 16384 = 2^14), r is de blokgrootte (standaard 8), en p is de parallellisatiefactor (standaard 1). Geheugengebruik is ongeveer 128 · N · r bytes — ongeveer 16 MiB bij de standaardwaarden — en de tool waarschuwt wanneer je instellingen 256 MiB zouden overschrijden. De uitvoer is een zelfbeschrijvende string $scrypt$ln=14,r=8,p=1$<base64 salt>$<base64 key> waarbij ln = log2(N), zodat elke parameter die nodig is om te verifiëren met de hash wordt meegedragen.

De Verify-modus haalt ln, r, p, de salt en de opgeslagen sleutel uit die string, herberekent de afgeleide sleutel met het kandidaat-wachtwoord, en doet een constant-time-vergelijking om wel of geen overeenkomst te rapporteren. De scrypt-kern draait als een eval-vrije WebAssembly-build onder het strikte beveiligingsbeleid van de browser, dus wachtwoorden worden 100% in je browser verwerkt en er wordt niets geüpload.

Veelgestelde vragen

Waarom moet N een macht van twee zijn?
De ROMix-stap van scrypt indexeert een tabel van exact N blokken en vertrouwt erop dat N een macht van twee is voor zijn integerify-and-mask-adressering. De tool weigert waarden die geen macht van twee zijn. Typische keuzes zijn 16384 (2^14) voor interactief gebruik en 1048576 (2^20) voor bestandsversleuteling.
Hoeveel geheugen gebruikt scrypt?
Ongeveer 128 · N · r bytes. Bij de standaardwaarden N=16384, r=8 is dat ongeveer 16 MiB. Omdat de browser dit echt toewijst, kunnen grote N- of r-waarden traag zijn of falen op apparaten met weinig RAM — de tool waarschuwt boven 256 MiB.
Wat regelen r en p?
r is de blokgrootte, die zowel het geheugengebruik als de hoeveelheid sequentieel werk per blok schaalt; het verhogen van r verhoogt de geheugen-cost samen met N. p is de parallellisatiefactor, die p onafhankelijke scrypt-berekeningen draait, wat de CPU-cost verhoogt zonder de geheugen-footprint per instantie te verhogen.
Welk formaat heeft de gegenereerde hash?
Een zelfbeschrijvende string $scrypt$ln=<log2 N>,r=<r>,p=<p>$<base64 salt>$<base64 key>. Het bevat elke parameter, dus de Verify-modus heeft alleen die string en het wachtwoord nodig. Alle berekeningen zijn lokaal — er wordt niets geüpload.

Meer tools