UTILS.
‎100%‎ داخل المتصفح
🧂

مولّد ومحقّق تجزئة scrypt KDF

اشتقّ مفتاح scrypt من كلمة مرور بتكلفة N وr وp قابلة للتهيئة، أو تحقّق من كلمة مرور مقابل سلسلة scrypt مخزَّنة. يعمل بالكامل في متصفحك.

تُجزَّأ كلمات المرور 100% في متصفحك — لا يُرفَع أي شيء.

— يظهر المخرج هنا —

حول هذه الأداة

يشتقّ مولّد ومحقّق تجزئة scrypt KDF مخرجات scrypt ويفحصها محلياً في متصفحك. scrypt، الذي صمّمه Colin Percival ومُقنَّن في RFC 7914، دالة اشتقاق مفتاح صعبة الذاكرة: تكلفتها مُصمَّمة لتهيمن عليها عرض نطاق الذاكرة بحيث يكسب عتاد الكسر المخصّص ميزة ضئيلة. خطّ الأنابيب هو PBKDF2-HMAC-SHA256 لتوسيع كلمة المرور، ثم دالة ROMix المبنية على BlockMix ونواة Salsa20/8 لفرض استخدام ذاكرة تسلسلي كبير، وأخيراً PBKDF2-HMAC-SHA256 لإنتاج المفتاح المشتق بالطول الذي تختاره.

يقرأ وضع التوليد 16 بايت ملح عشوائية من crypto.getRandomValues ويشغّل scrypt بثلاثة معاملات تكلفة: N هي تكلفة المعالج/الذاكرة ويجب أن تكون قوة للاثنين (الافتراضي 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% في متصفحك ولا يُرفَع أي شيء.

الأسئلة الشائعة

لماذا يجب أن تكون N قوة للاثنين؟
تفهرس خطوة ROMix في scrypt جدولاً من N كتلة بالضبط وتعتمد على كون N قوة للاثنين لعنونتها بـ integerify-and-mask. ترفض الأداة القيم غير القوى للاثنين. الخيارات النموذجية 16384 (2^14) للاستخدام التفاعلي و1048576 (2^20) لتشفير الملفات.
كم من الذاكرة يستخدم scrypt؟
تقريباً 128 · N · r بايت. عند الافتراضات N=16384، r=8 ذلك نحو 16 MiB. ولأن المتصفح يخصّص هذا فعلاً، قد تكون قيم N أو r الكبيرة بطيئة أو تفشل على أجهزة قليلة الذاكرة — تحذّر الأداة فوق 256 MiB.
ماذا تتحكّم r وp؟
r هي حجم الكتلة، الذي يقيس كلاً من استخدام الذاكرة ومقدار العمل التسلسلي لكل كتلة؛ زيادة r ترفع تكلفة الذاكرة إلى جانب N. وp هي عامل التوازي، تشغّل p حسابات scrypt مستقلة، مما يرفع تكلفة المعالج دون رفع بصمة الذاكرة لكل نسخة.
ما صيغة التجزئة المولَّدة؟
سلسلة ذاتية الوصف $scrypt$ln=<log2 N>,r=<r>,p=<p>$<base64 salt>$<base64 key>. تُضمِّن كل معامل، فلا يحتاج وضع التحقق سوى تلك السلسلة وكلمة المرور. كل الحسابات محلية — لا يُرفَع أي شيء.

المزيد من الأدوات