Перейти до вмісту

Генератор Scrypt

Отримайте ключ scrypt із пароля, використавши випадкову або власну сіль. Виберіть показник вартості до 15 (N до 32768), розмір блока r до 8, паралелізм p до 4 і довжину ключа від 16 до 64 байтів. Інструмент відповідає RFC 7914 і повертає ключ, використану сіль і параметри у hex або Base64, готові до порівняння з Node.js crypto.scrypt, Python hashlib або libsodium. Пароль не повертається.

Скинути

Поширені запитання

Що таке scrypt?

Scrypt — це функція отримання ключа з інтенсивним використанням пам’яті, створена Коліном Персівалем і стандартизована в RFC 7914. Вона отримує ключ із пароля та солі, змушуючи кожну спробу використовувати великий обсяг пам’яті. Її використовують для зберігання паролів, шифрування дисків і деяких криптовалют.

Що означають N, r і p?

N визначає витрати процесора й пам’яті та має бути степенем двійки, r — це розмір блока, а p — коефіцієнт паралелізації. Використання пам’яті становить приблизно 128 помножити на N і r байтів, тому для N = 16384 і r = 8 потрібно 16 MiB. Тут N може сягати 32768, r — 8, а p — 4.

Які параметри встановлено за замовчуванням?

За замовчуванням використовуються N = 16384 (показник вартості 14), r = 8, p = 1 і ключ довжиною 32 байти — інтерактивні параметри, рекомендовані в статті про scrypt. Збільшуйте N для надійнішого захисту, наскільки дозволяє ваша система.

Як вибирається сіль?

Якщо поле солі порожнє, інструмент створює 16 випадкових байтів і показує їх у результаті. Якщо ввести сіль, використовуються її байти UTF-8, що дає змогу відтворити ключ з іншої системи. Ніколи не використовуйте одну сіль для різних паролів.

Чи можна відтворити тестові вектори RFC 7914?

Так. Для пароля pleaseletmein із сіллю SodiumChloride, показником вартості 14, r = 8, p = 1 і ключем довжиною 64 байти отримуємо 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887 — третій тестовий вектор RFC.

Чому параметри мають верхні межі?

Scrypt виділяє реальну пам’ять і працює на спільному сервері. Обмеження N до 32768, r до 8 і p до 4 утримує витрати на кожне отримання ключа в межах приблизно 32 MiB пам’яті та однієї-двох секунд.

Як зберігати хеш пароля scrypt?

Зберігайте ключ, сіль, а також N, r і p разом, адже для подальшої перевірки пароля потрібні всі ці дані. Такі бібліотеки, як Node.js crypto.scrypt, залишають формат зберігання на ваш розсуд, тоді як інші використовують власні формати рядків.

Чи містить результат мій пароль?

Ні. Відповідь містить ключ, сіль і параметри, але не пароль. Дані не записуються в журнал і не зберігаються.

Що краще використовувати: scrypt чи Argon2?

Обидва алгоритми потребують багато пам’яті й підходять для паролів. Argon2id — новіша рекомендація, і його простіше налаштовувати, тоді як scrypt широко підтримується стандартними бібліотеками, як-от Node.js і Python.

Що змінюють параметри hex і Base64?

Вони змінюють спосіб запису ключа й солі в результаті. Байти залишаються тими самими, тож виберіть формат, який читає ваш код.

Про OneClick Pro

OneClick Pro — це безкоштовна колекція з понад 150 вебінструментів для повсякденної роботи: конвертації зображень і одиниць, форматування та перевірки коду, перевірки доменів і SEO, а також роботи з текстом, датами й числами. Кожен інструмент працює без реєстрації чи передплати, а введені вами дані використовуються лише для обчислення результату й ніколи не зберігаються. Використовуйте цю добірку як швидкий набір інструментів для разових завдань або додайте в закладки інструменти, якими користуєтеся щодня.