درباره این ابزار
تولیدکننده و تأییدکنندهی هش KDF scrypt، خروجیهای scrypt را بهصورت محلی در مرورگر شما استخراج و بررسی میکند. scrypt، طراحیشده توسط Colin Percival و استانداردسازیشده در RFC 7914، یک تابع استخراج کلید حافظهسخت است: هزینهاش عمداً تحت سلطهی پهنای باند حافظه است تا سختافزار کرک سفارشی مزیت اندکی بهدست آورد. خط لوله عبارت است از 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 تحت سیاست امنیتی سختگیرانهی مرورگر اجرا میشود، بنابراین رمزهای عبور ۱۰۰٪ در مرورگر شما پردازش میشوند و چیزی بارگذاری نمیشود.