التجزئة/التشفير

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

Common uses

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.

مقالات: التجزئة/التشفير

Hash Generator: ما الفرق بين MD5 وSHA-1 وSHA-256

لماذا لا تزال MD5 تُستخدم للتحقق من سلامة الملفات، لكن ليس لكلمات المرور.

Checksum Verifier: كيف تتحقق من أن الملف غير تالف

لماذا يؤكد تطابق المجموع الاختباري سلامة الملف، لكن ليس من أنشأه.

HMAC: كيف تختلف التجزئة بمفتاح عن التجزئة العادية

لماذا لا يحمي SHA-256 العادي من التلاعب برسالة، بينما يحمي HMAC.

Bcrypt: لماذا تُجزَّأ كلمات المرور ببطء لا بسرعة

لماذا يُعدّ SHA-256 السريع خيارًا سيئًا لكلمات المرور، وbcrypt البطيء هو الخيار الصحيح.

UUID: كيف تُولَّد معرّفات لا تتكرر تقريبًا أبدًا

لماذا يمكن توليد UUID v4 بشكل مستقل على ملايين الأجهزة دون خطر التصادم.

مولّد كلمات المرور: ما الذي يجعل كلمة المرور قوية فعلًا

لماذا تكون كلمة مرور طويلة من كلمات القاموس أقوى من كلمة قصيرة برموز وأرقام.

AES: كيف يعمل التشفير المتماثل

لماذا يشفّر نفس المفتاح البيانات ويفكّ تشفيرها في AES، وكيف يختلف ذلك عن التشفير غير المتماثل.

Argon2: لماذا فازت هذه الخوارزمية بمسابقة تجزئة كلمات المرور

كيف تدافع Argon2 بشكل أفضل ضد الهجمات باستخدام بطاقات الرسوميات مقارنة بخوارزميات تجزئة كلمات المرور الأقدم.

TOTP: كيف تعمل الرموز أحادية الاستخدام في تطبيقات المصادقة

لماذا يعمل رمز Google Authenticator دون إنترنت ويتزامن مع الخادم عبر الوقت فقط.

PBKDF2: أقدم معيار لتمديد المفاتيح

لماذا يتزايد عدد تكرارات PBKDF2 الموصى به كل عام.

X.509: ماذا يوجد داخل شهادة SSL

ما الذي يتحقق منه المتصفح بالضبط في شهادة موقع قبل عرض القفل الأخضر.

PGP: كيف يعمل التشفير بمفتاح عام وخاص

لماذا يمكن مشاركة المفتاح العام لـ PGP بحرية، لكن ليس المفتاح الخاص أبدًا.