Generator scrypt
Wyprowadź klucz scrypt z hasła przy użyciu losowej lub własnej soli. Wybierz wykładnik kosztu do 15 (N do 32768), rozmiar bloku r do 8, równoległość p do 4 i długość klucza od 16 do 64 bajtów. Narzędzie jest zgodne z RFC 7914 i zwraca klucz, użyte wartości soli i parametry w formacie szesnastkowym lub Base64, gotowe do porównania z Node.js crypto.scrypt, Python hashlib lub libsodium. Hasło nie jest wyświetlane ponownie.
Najczęściej zadawane pytania
Czym jest scrypt?
Scrypt to funkcja wyprowadzania klucza wymagająca dużej ilości pamięci, opracowana przez Colina Percivala i ustandaryzowana w RFC 7914. Wyprowadza klucz z hasła i soli, zmuszając każdą próbę do użycia dużego bloku pamięci. Jest używana do przechowywania haseł, szyfrowania dysków i obsługi niektórych kryptowalut.
Co oznaczają N, r i p?
N określa koszt procesora i pamięci oraz musi być potęgą dwójki, r to rozmiar bloku, a p to współczynnik równoległości. Zużycie pamięci wynosi około 128 razy N razy r bajtów, więc N = 16384 przy r = 8 wymaga 16 MiB. Tutaj N może wynosić maksymalnie 32768, r maksymalnie 8, a p maksymalnie 4.
Jakie są parametry domyślne?
Domyślne ustawienia to N = 16384 (wykładnik kosztu 14), r = 8, p = 1 i klucz o długości 32 bajtów. Są to interaktywne ustawienia zalecane w artykule o scrypt. Zwiększaj N, aby zapewnić lepszą ochronę, na tyle, na ile pozwala Twój system.
Jak wybierana jest sól?
Jeśli pole soli jest puste, narzędzie tworzy 16 losowych bajtów i wyświetla je w wyniku. Jeśli wpiszesz sól, zostaną użyte jej bajty UTF-8, co pozwala odtworzyć klucz z innego systemu. Nigdy nie używaj tej samej soli dla różnych haseł.
Czy mogę odtworzyć wektory testowe RFC 7914?
Tak. Hasło pleaseletmein, sól SodiumChloride, wykładnik kosztu 14, r = 8, p = 1 i klucz o długości 64 bajtów dają wynik 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887, czyli trzeci wektor z RFC.
Dlaczego parametry mają ograniczenia?
Scrypt przydziela rzeczywistą pamięć i działa na współdzielonym serwerze. Ograniczenie N do 32768, r do 8 i p do 4 utrzymuje zużycie pamięci podczas jednego wyprowadzania klucza poniżej około 32 MiB, a czas pracy w granicach sekundy lub dwóch.
Jak przechowywać skrót hasła scrypt?
Zapisz razem klucz, sól oraz N, r i p, ponieważ wszystkie te wartości są potrzebne do późniejszego sprawdzenia hasła. Biblioteki takie jak Node.js crypto.scrypt pozostawiają wybór formatu zapisu Tobie, a inne używają własnych formatów ciągów.
Czy wynik zawiera moje hasło?
Nie. Odpowiedź zawiera klucz, sól i parametry, ale nigdy hasło. Nic nie jest rejestrowane ani zapisywane.
Czy lepiej użyć scrypt czy Argon2?
Oba algorytmy wymagają dużej ilości pamięci i nadają się do haseł. Argon2id to nowsza rekomendacja, którą łatwiej dostosować, natomiast scrypt jest szeroko obsługiwany w standardowych bibliotekach, takich jak Node.js i Python.
Co zmieniają opcje hex i Base64?
Zmieniają sposób zapisu klucza i soli w wyniku. Bajty pozostają takie same, więc wybierz format obsługiwany przez Twój kod.