Об этом инструменте
Генератор и верификатор хешей scrypt KDF выводит и проверяет результаты scrypt локально в вашем браузере. scrypt, разработанный Colin Percival и стандартизированный в RFC 7914, — это memory-hard функция вывода ключа: её стоимость намеренно доминируется пропускной способностью памяти, чтобы специальное оборудование для взлома получало мало преимуществ. Конвейер — это PBKDF2-HMAC-SHA256 для расширения пароля, функция ROMix, построенная на BlockMix и ядре Salsa20/8, чтобы принудить большое последовательное использование памяти, и финальный PBKDF2-HMAC-SHA256 для получения производного ключа выбранной вами длины.
В режиме генерации читаются 16 случайных байтов соли из crypto.getRandomValues и запускается scrypt с тремя параметрами стоимости: N — это стоимость CPU/памяти и должна быть степенью двойки (по умолчанию 16384 = 2^14), r — размер блока (по умолчанию 8), а p — фактор распараллеливания (по умолчанию 1). Использование памяти примерно 128 · N · r байт — около 16 MiB при значениях по умолчанию — и инструмент предупреждает, когда ваши настройки превысили бы 256 MiB. Вывод — самоописывающая строка $scrypt$ln=14,r=8,p=1$<base64 salt>$<base64 key>, где ln = log2(N), поэтому каждый параметр, нужный для проверки, несётся с хешем.
В режиме проверки разбираются ln, r, p, соль и сохранённый ключ из этой строки, пересчитывается производный ключ с кандидатом-паролем и делается сравнение за постоянное время, чтобы сообщить совпадение или несовпадение. Ядро scrypt работает как WebAssembly-сборка без eval под строгой политикой безопасности браузера, поэтому пароли обрабатываются на 100% в вашем браузере, и ничего не загружается.