Scrypt Generator
Härled en scrypt-nyckel från ett lösenord med ett slumpmässigt eller anpassat salt. Välj kostnadsexponent upp till 15 (N upp till 32768), blockstorlek r upp till 8, parallellism p upp till 4 och en nyckellängd på 16 till 64 byte. Verktyget följer RFC 7914 och returnerar nyckeln, det använda saltet och parametrarna i hex eller Base64, redo att jämföras med Node.js crypto.scrypt, Python hashlib eller libsodium. Lösenordet visas aldrig igen.
Vanliga frågor
Vad är scrypt?
Scrypt är en minneskrävande funktion för nyckelhärledning, skapad av Colin Percival och standardiserad i RFC 7914. Den härleder en nyckel från ett lösenord och ett salt samtidigt som varje försök tvingas använda en stor mängd minne. Den används för lösenordslagring, diskkryptering och vissa kryptovalutor.
Vad betyder N, r och p?
N är kostnaden i CPU och minne och måste vara en tvåpotens, r är blockstorleken och p är parallelliseringsfaktorn. Minnesanvändningen är ungefär 128 gånger N gånger r byte, så N = 16384 med r = 8 kräver 16 MiB. Här går N upp till 32768, r upp till 8 och p upp till 4.
Vilka är standardparametrarna?
Standardvärdena är N = 16384 (kostnadsexponent 14), r = 8, p = 1 och en nyckel på 32 byte, de interaktiva inställningar som rekommenderas i scrypt-artikeln. Öka N för starkare skydd så långt systemet tillåter.
Hur väljs saltet?
Om saltfältet är tomt skapar verktyget 16 slumpmässiga byte och visar dem i resultatet. Om du anger ett salt används dess UTF-8-byte, vilket gör att du kan återskapa en nyckel från ett annat system. Återanvänd aldrig samma salt för olika lösenord.
Kan jag återskapa testvektorerna i RFC 7914?
Ja. Lösenordet pleaseletmein med saltet SodiumChloride, kostnadsexponent 14, r = 8, p = 1 och en nyckel på 64 byte ger 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887, RFC:ens tredje testvektor.
Varför är parametrarna begränsade?
Scrypt allokerar faktiskt minne och körs på en delad server. Genom att begränsa N till 32768, r till 8 och p till 4 hålls varje härledning under ungefär 32 MiB minne och en eller två sekunders arbete.
Hur lagrar jag en scrypt-lösenordshash?
Lagra nyckeln, saltet samt N, r och p tillsammans, eftersom du behöver allt för att kontrollera ett lösenord senare. Bibliotek som Node.js crypto.scrypt låter dig själv välja lagringsformat, medan andra använder egna strängformat.
Ingår mitt lösenord i resultatet?
Nej. Svaret innehåller nyckeln, saltet och parametrarna, men aldrig lösenordet. Ingenting loggas eller sparas.
Bör jag använda scrypt eller Argon2?
Båda är minneskrävande och lämpar sig för lösenord. Argon2id är den nyare rekommendationen och är enklare att finjustera, medan scrypt har brett stöd i standardbibliotek som Node.js och Python.
Vad ändrar alternativen hex och Base64?
De ändrar hur nyckeln och saltet skrivs i resultatet. Bytevärdena är desamma, så välj det format som din kod kan läsa.