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.