أفضل الممارسات: أكثر طريقة لتخزين كلمات المرور في جدول؟ [مغلق

StackOverflow https://stackoverflow.com/questions/1592608

سؤال

أنا أستخدم PHP. اعتدت على استخدام كلمة مرور وظيفة MySQL الأصلية لتخزين كلمات المرور. قيل لي إن كلمة المرور () لم تعد آمنة. ما هي أفضل طريقة لتخزين كلمات المرور في PHP؟ هل هو MD5؟

هل كانت مفيدة؟

المحلول

إجابة محدثة 2016:

الفائز في PHC (كلمة مرور التجزئة) كان Argon2. Hashing كلمات المرور مع Argon2 هي أفضل ممارسة اعتبارًا من عام 2016.

استمرت PHC من 2013 إلى 2015 كمنافسة مفتوحة-نفس النوع من عمليات NIST's AES و SHA-3 ، والطريقة الأكثر فعالية لتطوير معيار التشفير. تلقينا 24 مرشحًا ، بما في ذلك العديد من التصميمات الممتازة ، واختارنا فائزًا واحدًا ، Argon2 ، وهي خوارزمية صممها أليكس بيريوكوف ، ودانييل دينو ، وديمتري خوفراتوفيتش من جامعة لوكسمبورغ.

نوصي باستخدامك باستخدام Argon2 بدلاً من الخوارزميات القديمة.

ال التنفيذ المرجعي متاح على جيثب.

إجابة محدثة 2012:

كانت الإجابة الأصلية التي أعطيتها أدناه تعتبر ذات مرة أفضل ممارسة. ومع ذلك ، فإن التقدم في تكنولوجيا الحوسبة التجزئة جعلت هذه المخططات ضعيفة. للمضي قدمًا ، فإن مخططات تجزئة كلمة المرور الوحيدة الآمنة هي تجزئة تكرارية مثل bcrypt و PBKDF2. للحصول على مناقشة كاملة ، انظر تحليل جيف أتوود.

الإجابة الأصلية 2009:

أوصي أولاً بإنفاق الأطباق أ ملح قيمة لكلمة المرور الخاصة بك ، تليها التجزئة السلسلة الناتجة مع وظيفة تجزئة قوية بشكل معقول مثل SHA256. هذا يؤمن ضد كلمات مرور النص الواضحة (واضحة) وغير واضح (الهجوم باستخدام طاولات قوس قزح).

ضع في اعتبارك أنه إذا قمت بتخزين كلمات المرور بهذه الطريقة ، فستفعل ذلك ليس تكون قادرًا على استرداد كلمة المرور المفقودة للمستخدم. سيكونون قادرين فقط على إعادة تعيين كلمات المرور. هذا لأنك ستستخدم ملف طريقة واحدة هاش. لكن هذا القيد يستحق عمومًا المقايضة لنظام تخزين كلمة المرور الأكثر أمانًا. حتى إذا تم اختراق قاعدة البيانات الخاصة بك ، فإن كلمات مرور المستخدم الخاصة بك ستظل صعبة للغاية وربما غير عملية لاستردادها من قبل A ستكون مهاجمة.

نصائح أخرى

تحتاج إلى ملح كلمة المرور.

يقوم Vbulletin بعمل جيد في تخزين كلمات المرور. MD5 (MD5 (كلمة المرور) + ملح) ؛

للتجادل مع الإجابة الأخرى ، يقوم Vbulletin بعمل فظيع في كلمات مرور التجزئة. يبلغ طول الملح 3 أحرف فقط ، مما يزيد من أمان طلبك بشكل كسري.

الدفع http://www.openwall.com/phass/ . يقومون بعمل ممتاز في استخدام تجزئة طويلة ، فريدة من نوعها لكل كلمة مرور ، وتشغيل كلمة المرور من خلال 5 مرات من MD. إنها واحدة من أفضل أنظمة التجزئة لـ PHP هناك.

إذا كنت تستطيع تجنب تخزين كلمة مرور المستخدم ، فهذا هو الخيار الأفضل لك ، IMO. استخدم OpenId (مثل StackOverFlow) لمصادقة المستخدم. أو المصادقة الحية (http://dev.live.com/liveid/). إذا كنت حقًا ، فهي بحاجة حقًا إلى مصادقة المستخدمين بنفسك ؛ افعل ما يقوله أساف في إجابته. قون

الملح والتجزئة.

نستخدم عادةً GUID عشوائيًا مثل الملح ثم SHA512 إلى التجزئة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top