Generator Scrypt
Izpeljite ključ s scrypt iz gesla in naključne ali lastne soli. Izberite eksponent stroškov do 15 (N do 32768), velikost bloka r do 8, vzporednost p do 4 in dolžino ključa od 16 do 64 bajtov. Orodje upošteva RFC 7914 in vrne ključ, uporabljeno sol ter parametre v šestnajstiški obliki ali Base64, pripravljene za primerjavo z Node.js crypto.scrypt, Python hashlib ali libsodium. Geslo se ne izpiše.
Pogosta vprašanja
Kaj je scrypt?
Scrypt je funkcija za izpeljavo ključev, ki jo je zasnoval Colin Percival, standardizirana pa je v RFC 7914. Iz gesla in soli izpelje ključ, pri čemer vsak poskus zahteva uporabo velike količine pomnilnika. Uporablja se za shranjevanje gesel, šifriranje diskov in nekatere kriptovalute.
Kaj pomenijo N, r in p?
N določa strošek za procesor in pomnilnik ter mora biti potenca števila dve, r je velikost bloka, p pa faktor vzporednosti. Poraba pomnilnika znaša približno 128-kratnik N krat r bajtov, zato je za N = 16384 in r = 8 potrebnih 16 MiB. Tukaj je N največ 32768, r največ 8 in p največ 4.
Kakšni so privzeti parametri?
Privzete vrednosti so N = 16384 (eksponent stroškov 14), r = 8, p = 1 in 32-bajtni ključ, kar so interaktivne nastavitve, priporočene v dokumentaciji scrypt. Za večjo zaščito povečajte N, kolikor dopušča vaš sistem.
Kako se izbere sol?
Če je polje za sol prazno, orodje ustvari 16 naključnih bajtov in jih prikaže v rezultatu. Če vnesete sol, se uporabijo njeni bajti UTF-8, kar omogoča ponovljivo izpeljavo ključa iz drugega sistema. Iste soli nikoli ne uporabite za različna gesla.
Ali lahko ponovim testne vektorje RFC 7914?
Da. Za geslo pleaseletmein in sol SodiumChloride, eksponent stroškov 14, r = 8, p = 1 in 64-bajtni ključ dobite 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887, tretji testni vektor iz RFC.
Zakaj so parametri omejeni?
Scrypt zasede dejanski pomnilnik in se izvaja na strežniku, ki si ga delite z drugimi. Omejitev N na 32768, r na 8 in p na 4 ohranja porabo pomnilnika pri posamezni izpeljavi pod približno 32 MiB, čas izvajanja pa pri sekundi ali dveh.
Kako shranim zgoščeno vrednost gesla s scrypt?
Ključ, sol ter N, r in p shranite skupaj, saj jih potrebujete za poznejše preverjanje gesla. Knjižnice, kot sta Node.js crypto.scrypt, prepustijo izbiro formata za shranjevanje vam, druge pa uporabljajo lastne formate nizov.
Ali je moje geslo vključeno v rezultat?
Ne. Odgovor vsebuje ključ, sol in parametre, nikoli pa gesla. Nič se ne beleži ali shranjuje.
Ali naj uporabim scrypt ali Argon2?
Oba sta odporna proti napadom z uporabo pomnilnika in primerna za gesla. Argon2id je novejše priporočilo in ga je lažje prilagajati, medtem ko je scrypt široko podprt v standardnih knjižnicah, kot sta Node.js in Python.
Kaj spremenita možnosti hex in Base64?
Spremenita zapis ključa in soli v rezultatu. Bajti ostanejo enaki, zato izberite obliko, ki jo zna prebrati vaša koda.