Scrypt Generator
Leite mit einem zufälligen oder eigenen Salt einen scrypt-Schlüssel aus einem Passwort ab. Wähle den Kostenexponenten bis 15 (N bis 32768), die Blockgröße r bis 8, die Parallelität p bis 4 und eine Schlüssellänge von 16 bis 64 Bytes. Das Werkzeug folgt RFC 7914 und gibt den Schlüssel, das verwendete Salt und die Parameter in Hexadezimalform oder als Base64 zurück, bereit zum Vergleich mit Node.js crypto.scrypt, Python hashlib oder libsodium. Das Passwort wird nicht zurückgegeben.
Häufig gestellte Fragen
Was ist scrypt?
Scrypt ist eine speicherintensive Schlüsselableitungsfunktion von Colin Percival, standardisiert in RFC 7914. Sie leitet einen Schlüssel aus einem Passwort und einem Salt ab und zwingt jeden Versuch, einen großen Speicherblock zu verwenden. Sie wird für die Passwortspeicherung, Festplattenverschlüsselung und einige Kryptowährungen eingesetzt.
Was bedeuten N, r und p?
N steht für den CPU- und Speicheraufwand und muss eine Zweierpotenz sein, r ist die Blockgröße und p der Parallelisierungsfaktor. Der Speicherbedarf beträgt ungefähr 128 mal N mal r Bytes. Daher benötigt N = 16384 mit r = 8 insgesamt 16 MiB. Hier kann N bis 32768, r bis 8 und p bis 4 reichen.
Welche Parameter sind voreingestellt?
Voreingestellt sind N = 16384 (Kostenexponent 14), r = 8, p = 1 und ein 32-Byte-Schlüssel – die interaktiven Einstellungen, die im scrypt-Paper empfohlen werden. Erhöhe N für besseren Schutz, soweit es dein System zulässt.
Wie wird das Salt gewählt?
Wenn das Salt-Feld leer ist, erzeugt das Werkzeug 16 zufällige Bytes und zeigt sie im Ergebnis an. Wenn du ein Salt eingibst, werden dessen UTF-8-Bytes verwendet. So kannst du einen Schlüssel aus einem anderen System reproduzieren. Verwende dasselbe Salt niemals für verschiedene Passwörter.
Kann ich die Testvektoren aus RFC 7914 reproduzieren?
Ja. Das Passwort pleaseletmein mit dem Salt SodiumChloride, Kostenexponent 14, r = 8, p = 1 und einem 64-Byte-Schlüssel ergibt 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887, den dritten Testvektor aus dem RFC.
Warum sind die Parameter begrenzt?
Scrypt reserviert echten Speicher und läuft auf einem gemeinsam genutzten Server. Die Begrenzung von N auf 32768, r auf 8 und p auf 4 hält jede Ableitung bei etwa 32 MiB Speicherbedarf und ein bis zwei Sekunden Rechenzeit.
Wie speichere ich einen scrypt-Passworthash?
Speichere den Schlüssel, das Salt sowie N, r und p zusammen, da du all diese Werte brauchst, um ein Passwort später zu prüfen. Bibliotheken wie Node.js crypto.scrypt überlassen das Speicherformat dir, andere verwenden ihr eigenes String-Format.
Ist mein Passwort im Ergebnis enthalten?
Nein. Die Antwort enthält den Schlüssel, das Salt und die Parameter, aber niemals das Passwort. Es wird nichts protokolliert oder gespeichert.
Sollte ich scrypt oder Argon2 verwenden?
Beide sind speicherintensiv und für Passwörter geeignet. Argon2id ist die neuere Empfehlung und lässt sich einfacher abstimmen, während scrypt in Standardbibliotheken wie Node.js und Python weit verbreitet ist.
Was ändern die Optionen hex und Base64?
Sie ändern, wie Schlüssel und Salt im Ergebnis dargestellt werden. Die Bytes bleiben gleich, wähle also die Form, die dein Code einliest.