Über dieses Tool
Der scrypt-KDF-Hash-Generator & -Verifizierer leitet scrypt-Ausgaben lokal in deinem Browser ab und prüft sie. scrypt, entworfen von Colin Percival und standardisiert in RFC 7914, ist eine speicherharte Schlüsselableitungsfunktion: Ihre Kosten werden bewusst von der Speicherbandbreite bestimmt, sodass spezialisierte Cracking-Hardware kaum Vorteile gewinnt. Die Pipeline besteht aus PBKDF2-HMAC-SHA256 zum Expandieren des Passworts, der ROMix-Funktion, die auf BlockMix und dem Salsa20/8-Kern aufbaut, um große sequentielle Speichernutzung zu erzwingen, und einem finalen PBKDF2-HMAC-SHA256, um den abgeleiteten Schlüssel deiner gewählten Länge zu erzeugen.
Der Generierungsmodus liest 16 zufällige Salt-Bytes aus crypto.getRandomValues und führt scrypt mit drei Kostenparametern aus: N ist die CPU-/Speicherkosten und muss eine Zweierpotenz sein (Standard 16384 = 2^14), r ist die Blockgröße (Standard 8) und p ist der Parallelisierungsfaktor (Standard 1). Die Speichernutzung beträgt grob 128 · N · r Bytes — etwa 16 MiB bei den Standardwerten —, und das Tool warnt, wenn deine Einstellungen 256 MiB überschreiten würden. Die Ausgabe ist eine selbstbeschreibende Zeichenkette $scrypt$ln=14,r=8,p=1$<base64 salt>$<base64 key>, wobei ln = log2(N), sodass jeder zur Verifizierung nötige Parameter mit dem Hash getragen wird.
Der Verifizierungsmodus liest ln, r, p, das Salt und den gespeicherten Schlüssel aus dieser Zeichenkette, berechnet den abgeleiteten Schlüssel mit dem Kandidatenpasswort neu und führt einen konstantzeitigen Vergleich durch, um Übereinstimmung oder Nichtübereinstimmung zu melden. Der scrypt-Kern läuft als eval-freier WebAssembly-Build unter der strengen Sicherheitsrichtlinie des Browsers, sodass Passwörter zu 100 % in deinem Browser verarbeitet werden und nichts hochgeladen wird.