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

Argon2 Hash + Verify

تجزئة كلمات المرور باستخدام Argon2 (الفائز في Password Hashing Competition، RFC 9106) — بأنواع d/i/id، مع التحقق مقابل هاش موجود.


                    

Argon2 is the Password Hashing Competition winner and the algorithm recommended in RFC 9106 for hashing passwords. Unlike bcrypt, it deliberately demands a lot of memory, not just CPU time, which makes attacks on specialized hardware (GPUs, ASICs) much harder.

How to use it

Common uses

Things to keep in mind

The memory parameter is Argon2's main defense: the more memory hashing requires, the more expensive it is for an attacker to parallelize an attack on a GPU with limited fast memory per chip.

Argon2id is recommended for most cases: Argon2i resists side-channel attacks better, Argon2d resists GPU attacks better, and id combines both approaches.

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

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

لماذا يُعتبر Argon2 الخيار الموصى به حاليًا لتجزئة كلمات المرور؟

Argon2 هو الفائز في مسابقة Password Hashing Competition، وهو "كثيف الذاكرة" (memory-hard)، ما يجعل تنفيذه بكفاءة على معدات متخصصة مثل GPU وASIC أصعب وأكلف مقارنة بخوارزميات أقدم.

ما الفرق بين أنواع Argon2i وArgon2d وArgon2id؟

Argon2i مصمم لمقاومة هجمات القناة الجانبية ويُناسب تجزئة كلمات المرور، وArgon2d أكثر مقاومة لهجمات كسر GPU لكنه عرضة للقنوات الجانبية، وArgon2id هجين يجمع مزايا النوعين وهو الموصى به افتراضيًا.

لماذا يستغرق حساب Argon2 وقتًا وذاكرة ملحوظين؟

هذا سلوك متعمد؛ زيادة معاملات الذاكرة والتكرارات ترفع تكلفة الهجوم بالتخمين الآلي بشكل كبير، على حساب زمن حساب أطول قليلًا للاستخدام الشرعي.

من أين جاء Argon2 كمعيار؟

فاز Argon2 في مسابقة Password Hashing Competition عام 2015 — وهي مسابقة مفتوحة لخبراء التشفير هدفها إيجاد أفضل خوارزمية لتجزئة كلمات المرور. منذ ذلك الحين توصي OWASP به كخيار أولوية على bcrypt.

هل معامل التوازي يسرّع التجزئة فقط؟

لا، فالمعامل نفسه يسرّع أيضًا محاولات التخمين لدى مهاجم يمتلك عتادًا متعدد الأنوية، لذا يجب ضبط التوازي بما يتناسب مع العدد الفعلي لأنوية الخادم، دون زيادته دون داعٍ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Scrypt: لماذا تحتاج الخوارزمية إلى كل هذه الذاكرة

لماذا تتطلب scrypt عمدًا ذاكرة كبيرة لتصعيب الكسر على أجهزة ASIC.

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

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

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

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

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

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

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

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