Scrypt Generator
Išveskite scrypt raktą iš slaptažodžio, naudodami atsitiktinę arba pasirinktą druską. Pasirinkite iki 15 siekiantį sąnaudų rodiklį (N iki 32768), bloko dydį r iki 8, lygiagretumą p iki 4 ir rakto ilgį nuo 16 iki 64 baitų. Įrankis atitinka RFC 7914 ir pateikia raktą, naudotą druską bei parametrus šešioliktainiu formatu arba Base64, kad galėtumėte palyginti su Node.js crypto.scrypt, Python hashlib arba libsodium. Slaptažodis neparodomas.
Dažnai užduodami klausimai
Kas yra scrypt?
Scrypt – Colin Percival sukurta, RFC 7914 standartizuota, daug atminties reikalaujanti rakto išvedimo funkcija. Ji išveda raktą iš slaptažodžio ir druskos, o kiekvieną bandymą verčia naudoti daug atminties. Ji naudojama slaptažodžiams saugoti, diskams šifruoti ir kai kurioms kriptovaliutoms.
Ką reiškia N, r ir p?
N nurodo procesoriaus ir atminties sąnaudas, ir turi būti dvejeto laipsnis; r yra bloko dydis, o p – lygiagretinimo koeficientas. Atminties naudojimas yra maždaug 128 kart N kart r baitų, todėl N = 16384 ir r = 8 reikia 16 MiB. Čia N gali siekti 32768, r – 8, o p – 4.
Kokie yra numatytieji parametrai?
Numatytieji parametrai yra N = 16384 (sąnaudų rodiklis 14), r = 8, p = 1 ir 32 baitų raktas – interaktyvūs nustatymai, rekomenduojami scrypt straipsnyje. Jei jūsų sistema leidžia, padidinkite N, kad sustiprintumėte apsaugą.
Kaip parenkama druska?
Jei druskos laukas tuščias, įrankis sugeneruoja 16 atsitiktinių baitų ir parodo juos rezultate. Jei įvedate druską, naudojami jos UTF-8 baitai, todėl galite pakartotinai išvesti raktą kitoje sistemoje. Niekada nenaudokite tos pačios druskos skirtingiems slaptažodžiams.
Ar galiu atkartoti RFC 7914 testinius vektorius?
Taip. Slaptažodis pleaseletmein su druska SodiumChloride, sąnaudų rodikliu 14, r = 8, p = 1 ir 64 baitų raktu pateikia 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887 – trečiąjį RFC vektorių.
Kodėl parametrams nustatytos ribos?
Scrypt skiria tikrą atmintį ir veikia bendrame serveryje. N ribojant iki 32768, r iki 8, o p iki 4, kiekvienam išvedimui reikia mažiau nei maždaug 32 MiB atminties ir sekundės ar dviejų darbo.
Kaip saugoti scrypt slaptažodžio maišą?
Kartu saugokite raktą, druską ir N, r bei p, nes vėliau slaptažodžiui patikrinti reikės visų šių duomenų. Tokios bibliotekos kaip Node.js crypto.scrypt saugojimo formatą palieka jums, o kitos naudoja savo eilutės formatus.
Ar rezultatas apima mano slaptažodį?
Ne. Atsakyme yra raktas, druska ir parametrai, bet niekada nėra slaptažodžio. Nieko neregistruojame ir neišsaugome.
Ar turėčiau naudoti scrypt, ar Argon2?
Abu variantai reikalauja daug atminties ir tinka slaptažodžiams. Argon2id yra naujesnė rekomendacija ir jį lengviau konfigūruoti, o scrypt plačiai palaikomas standartinėse bibliotekose, tokiose kaip Node.js ir Python.
Ką keičia hex ir Base64 parinktys?
Jos keičia, kaip rezultate pateikiamas raktas ir druska. Baitai išlieka tie patys, todėl pasirinkite formą, kurią nuskaito jūsų kodas.