سؤال

bCrypt في جافادوك لديه هذا رمز لكيفية تشفير كلمة المرور :

String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt()); 

لتحقق ما إذا كان كلمة مرور مشفرة مباريات واحد الذي تم تجزئته سابقا، استخدم الطريقة checkpw:

if (BCrypt.checkpw(candidate_password, stored_hash))
    System.out.println("It matches");
else
    System.out.println("It does not match");

وهذه مقتطفات الشفرة تعني لي أن الملح بشكل عشوائي يتم طرح بعيدا. هل هذه هي الحالة، أم أن هذا مجرد التعليمات البرمجية المتكررة مضللة؟

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

المحلول

وأدرج الملح إلى تجزئة (المشفرة في شكل على غرار base64 في).

وعلى سبيل المثال، في يونكس التقليدي كلمات السر تم تخزين الملح كما أول حرفين من كلمة المرور. الأحرف المتبقية تمثل قيمة التجزئة. وظيفة المدقق يعرف هذا، وتسحب التجزئة عدا للحصول على الملح العودة.

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