يقوم تشفير كلمة المرور بإخفاء كلمات مرور المستخدمين بحيث يصعب تخمينها أو فك تشفيرها. إنها خطوة أساسية في تطوير برامج قاعدة مستخدم آمنة. سواء كنت تقوم ببناء واحد باستخدام Flask أو إطار Python خفيف آخر ، لا يمكنك تجاهل هذه الخطوة. وهنا يأتي دور bcrypt.
سنوضح لك كيفية استخدام bcrypt لتجزئة كلمة المرور الخاصة بك في Python.
كيف يعمل bcrypt
Bcrypt هي مكتبة تجزئة حيادية اللغة توفر تشفيرًا فريدًا لكلمات المرور. أثناء تشفير السلسلة الخاصة بك ، فإنها تولد أحرفًا عشوائية إضافية (ملح) افتراضيًا لتعزيز أمان كلمة مرورك.
اختياريًا ، يمكنك أيضًا تحديد عدد الأحرف الإضافية التي تريد إضافتها إلى سلسلة واردة.
مكتبة Thebcrypt لا تقرأ السلاسل الأولية — كود البايت فقط. لذلك للبدء ، ستقوم أولاً بتشفير سلسلة كلمة المرور الواردة قبل تمريرها إلى bcrypt للتشفير.
التشفير ليس هو نفسه التشفير. إنه يضمن فقط أن تصبح السلسلة قابلة للقراءة آليًا قبل أن تتمكن خوارزمية التشفير من إخفاءها.
تشفير كلمة المرور في Python باستخدام bcrypt
تشفير كلمة مرور bcrypt سهل مع Python. سنركز على كيفية القيام بذلك دون استخدام إطار عمل. ولكن لا تقلق ، فهي تتبع نفس العملية في أطر العمل بمجرد معرفة كيفية تخزين مدخلات المستخدمين وقراءتها من قاعدة البيانات.
قم بتثبيت وإعداد bcrypt
إذا لم تكن قد فعلت ذلك بالفعل ، تنشيط بيئة افتراضية Python في جذر مشروعك. ثم قم بتثبيت bcrypt باستخدام ملفات نقطة:
تثبيت نقطة bcrpyt
ابدأ بتشفير كلمات المرور
بمجرد التثبيت ، دعنا نرى كيفية تشفير سلسلة باستخدام bcrypt:
# استيراد bcrypt:
استيراد bcrypt
كلمة المرور = "mypasswordstring"
# تشفير كلمة المرور في كود utf-8 بايت قابل للقراءة:
كلمة المرور = password.encode ('utf-8')
# تجزئة كلمة المرور المشفرة وإنشاء ملح:
hashedPassword = bcrypt.hashpw (كلمة المرور ، bcrypt.gensalt ())
طباعة (hashedPassword)
عندما انت قم بتشغيل كود Python أعلاه ، يطبع سلسلة بايت مشفرة. ومع ذلك ، يتغير الإخراج في كل مرة تقوم فيها بتنفيذ البرنامج النصي. هذه هي الطريقة التي يضمن بها bcrypt لكل مستخدم كلمة مرور مشفرة بشكل فريد.
هذا من أجل تشفير كلمة المرور ، بالمناسبة.
كيفية مقارنة وتأكيد كلمات المرور باستخدام bcrypt
ماذا لو كنت تريد تخزين كلمة المرور المجزأة والتأكيد لاحقًا على أنها تطابق كلمة المرور المقدمة من المستخدم أثناء المصادقة؟
هذا سهل. ما عليك سوى مقارنة كلمة مرور المصادقة مع تلك المخزنة في قاعدة البيانات (أو في الذاكرة في هذه الحالة).
ونظرًا لأن bcrypt لا يقرأ سوى سلاسل البايت ، فستحتاج أيضًا إلى تشفير كلمة مرور المصادقة قبل مقارنتها مع تلك الموجودة في قاعدة البيانات. في الأساس ، ستقوم بالتحقق من إدخال المصادقة المشفر باستخدام كلمة المرور المشفرة المخزنة بالفعل في قاعدة البيانات الخاصة بك.
باستخدام مدخلات Python الوهمية ، دعنا نرى كيف يعمل هذا في الممارسة:
استيراد bcrypt
#store كلمة المرور الخاصة بك:
password = str (input ("input password:"))
# تشفير كلمة المرور المخزنة:
كلمة المرور = password.encode ('utf-8')
# تشفير كلمة المرور المخزنة:
التجزئة = bcrypt.hashpw (كلمة المرور ، bcrypt.gensalt (10))
# قم بإنشاء حقل إدخال كلمة مرور مصادقة للتحقق مما إذا كان المستخدم يقوم بإدخال كلمة المرور الصحيحة:
check = str (input ("check password:"))
# تشفير كلمة مرور المصادقة أيضًا:
check = check.encode ('utf-8')
# استخدم الشروط لمقارنة كلمة مرور المصادقة مع كلمة المرور المخزنة:
إذا كان bcrypt.checkpw (تحقق ، مجزأ):
طباعة ("نجاح تسجيل الدخول")
آخر:
طباعة ("كلمة مرور غير صحيحة")
يطلب منك الكود أعلاه إدخال كلمة مرور جديدة عند تنفيذها. يخزن Python هذا في الذاكرة. ستقدم بعد ذلك نفس كلمة المرور (المعروفة لك فقط) في حقل المصادقة.
تطبع Python رسالة نجاح إذا كانت مقارنة كلمة المرور تطابق كلمة المرور المشفرة المخزنة مسبقًا. خلاف ذلك ، فإنه يقوم بإخراج الرسالة الفاشلة ملفوفة في ملف آخر بيان:
المفهوم بأكمله هو نفسه تخزين كلمة المرور في قاعدة بيانات أثناء التسجيل وتقديمها لاحقًا أثناء المصادقة.
توسيع نطاق التشفير باستخدام bcrypt
على الرغم من أننا أظهرنا فقط كيفية عمل bcrypt من خلال تخزين كلمات المرور المشفرة في ذاكرة Python القصيرة البسيطة ، فإن استخدامها النهائي يكون في تطبيقات قاعدة المستخدمين الواقعية.
ومع ذلك ، يوضح هذا البرنامج التعليمي الطرق الأساسية لبناء الكود الخاص بك لتحقيق ذلك ، حتى في سيناريوهات الحياة الواقعية. على سبيل المثال ، إذا كنت تستخدم Flask ، فيمكنك استبدال المدخلات بنماذج ويب منفصلة لخدمة حقلي التسجيل والمصادقة. وبالطبع ، ستخزن كلمات المرور المشفرة في قاعدة بيانات واقعية وتقرأ منها عند مقارنة كلمات المرور.
الجميع يتحدث عن التشفير ، ولكن تجد نفسك ضائعًا أو مرتبكًا؟ فيما يلي بعض مصطلحات التشفير الأساسية التي تحتاج إلى معرفتها.
اقرأ التالي
- برمجة
- بايثون
- برمجة
- حماية
Idowu شغوف بأي شيء التكنولوجيا الذكية والإنتاجية. في أوقات فراغه ، يلعب بالبرمجة ويتحول إلى رقعة الشطرنج عندما يشعر بالملل ، لكنه أيضًا يحب الابتعاد عن الروتين من حين لآخر. يحفزه شغفه بإظهار طريقة حول التكنولوجيا الحديثة للناس على كتابة المزيد.
اشترك في نشرتنا الإخبارية
انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!
انقر هنا للاشتراك