التجزئة/التشفير
Scrypt Hash + Verify
تجزئة كلمات المرور باستخدام scrypt (RFC 7914، دالة اشتقاق مفتاح كثيفة الذاكرة) مع التحقق مقابل هاش موجود.
Scrypt (RFC 7914) was one of the first memory-hard password-hashing algorithms: it deliberately requires a lot of RAM, not just CPU time, to make parallel brute-forcing on GPUs and ASICs harder.
How to use it
- Hash: enter a password and tune the parameters (N — memory cost, r — block size, p — parallelism) to get a hash.
- Verify: paste a password and an existing scrypt hash to check whether they match.
- Every hash uses a fresh random salt, so the same password produces a different hash each time.
Common uses
- Checking that a backend correctly hashes passwords with scrypt before storing them.
- Generating a test scrypt hash for fixtures or seed data during development.
- Comparing scrypt against bcrypt and Argon2 when choosing a hashing algorithm for a new project.
Things to keep in mind
The N parameter (memory cost) increases both required memory and compute time exponentially — tune it to your server's actual capacity.
Scrypt has been superseded by Argon2 (the official Password Hashing Competition winner) as the recommended choice for new systems, though scrypt itself still isn't considered unsafe.
مقالة عن هذه الأداة: Scrypt: لماذا تحتاج الخوارزمية إلى كل هذه الذاكرة
الأسئلة الشائعة
ما الغرض من "كثافة الذاكرة" (memory-hardness) في scrypt؟
تتطلب scrypt كمية كبيرة من الذاكرة العشوائية أثناء الحساب، ما يجعل تسريع الهجمات عبر أجهزة متخصصة مثل GPU وASIC مكلفًا جدًا، وليس مجرد إبطاء الحساب على المعالج فقط.
لماذا تستغرق عملية التجزئة وقتًا طويلًا عند رفع قيمة التكلفة (log2 N)؟
رفع قيمة N يزيد استهلاك الذاكرة والوقت بشكل متعمد لجعل هجمات التخمين الآلي أبطأ وأكثر كلفة، وهذا التباطؤ متوقع وليس عطلًا.
كيف تؤثر معاملات حجم الكتلة (r) والتوازي (p) على النتيجة؟
حجم الكتلة r يضبط كمية الذاكرة المستخدمة لكل عملية، والتوازي p يتحكم في عدد سلاسل الحساب المتوازية؛ زيادتهما ترفع مقاومة الهاش لكنها تزيد أيضًا الموارد المطلوبة للحساب الشرعي.
كم من الذاكرة يستهلك scrypt فعليًا؟
نحو 128 × N × r بايت لكل عملية حساب واحدة. عند المعاملات النموذجية (N=16384، r=8) يعادل ذلك نحو 16 ميغابايت لكل هاش — وهو ضئيل بالنسبة لعملية تسجيل دخول واحدة، لكنه مؤثر عند آلاف عمليات المصادقة المتزامنة على الخادم.
أين يُستخدم scrypt أيضًا غير تجزئة كلمات المرور؟
يُعرف scrypt كخوارزمية إثبات العمل (proof-of-work) في بعض العملات المشفّرة (مثل Litecoin) — وقد اختير خصيصًا لمقاومته للتعدين باستخدام أجهزة ASIC المتخصصة، على عكس البيتكوين وخوارزميته SHA-256.