Generátor scrypt
Odvoďte klíč scrypt z hesla pomocí náhodné nebo vlastní soli. Zvolte exponent náročnosti až 15 (N až 32768), velikost bloku r až 8, paralelismus p až 4 a délku klíče od 16 do 64 bajtů. Nástroj odpovídá RFC 7914 a vrátí klíč, použitou sůl a parametry v šestnáctkové soustavě nebo jako Base64, připravené k porovnání s Node.js crypto.scrypt, Python hashlib nebo libsodium. Heslo se nezobrazuje.
Často kladené otázky
Co je scrypt?
Scrypt je paměťově náročná funkce pro odvození klíče, kterou vytvořil Colin Percival a která byla standardizována v RFC 7914. Odvozuje klíč z hesla a soli a zároveň vyžaduje, aby každý pokus využil velký blok paměti. Používá se k ukládání hesel, šifrování disků a v některých kryptoměnách.
Co znamenají N, r a p?
N určuje nároky na procesor a paměť a musí být mocninou dvou, r je velikost bloku a p faktor paralelizace. Spotřeba paměti je přibližně 128 krát N krát r bajtů, takže N = 16384 při r = 8 vyžaduje 16 MiB. Zde lze N nastavit až na 32768, r až na 8 a p až na 4.
Jaké jsou výchozí parametry?
Výchozí nastavení je N = 16384 (exponent náročnosti 14), r = 8, p = 1 a 32bajtový klíč; jde o interaktivní nastavení doporučené v odborném článku o scrypt. Pro vyšší ochranu zvyšte N podle možností svého systému.
Jak se volí sůl?
Pokud je pole pro sůl prázdné, nástroj vytvoří 16 náhodných bajtů a zobrazí je ve výsledku. Pokud zadáte vlastní sůl, použijí se její bajty v kódování UTF-8, což umožňuje zopakovat odvození klíče z jiného systému. Nikdy nepoužívejte stejnou sůl pro různá hesla.
Mohu zopakovat testovací vektory RFC 7914?
Ano. Heslo pleaseletmein se solí SodiumChloride, exponentem náročnosti 14, r = 8, p = 1 a 64bajtovým klíčem dává 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887, tedy třetí testovací vektor RFC.
Proč jsou parametry omezené?
Scrypt přiděluje skutečnou paměť a běží na sdíleném serveru. Omezení N na 32768, r na 8 a p na 4 udrží každé odvození pod přibližně 32 MiB paměti a dobu výpočtu na jednu až dvě sekundy.
Jak mám ukládat hash hesla scrypt?
Ukládejte společně klíč, sůl a hodnoty N, r a p, protože k pozdější kontrole hesla potřebujete všechny. Knihovny jako Node.js crypto.scrypt ponechávají formát ukládání na vás, zatímco jiné používají vlastní formáty řetězců.
Je moje heslo součástí výsledku?
Ne. Odpověď obsahuje klíč, sůl a parametry, nikdy však heslo. Nic se nezaznamenává ani neukládá.
Mám použít scrypt, nebo Argon2?
Obě funkce jsou náročné na paměť a hodí se pro hesla. Argon2id je novější doporučená volba a snadněji se nastavuje, zatímco scrypt má širokou podporu ve standardních knihovnách, jako jsou Node.js a Python.
Co mění možnosti hex a Base64?
Mění způsob zápisu klíče a soli ve výsledku. Bajty zůstávají stejné, takže zvolte formát, který váš kód umí načíst.