Passlib: تشفير كلمات المرور بأمان في Python

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هي مكتبة Passlib

Passlib — هي مكتبة Python قوية، صُممت خصيصًا لتشفير كلمات المرور بشكل آمن. تُعد حلاً عالي المستوى يجمع العديد من خوارزميات التشفير تحت واجهة موحدة. يستخدمها المطورون حول العالم لبناء أنظمة مصادقة موثوقة.

الهدف الأساسي لـ Passlib هو توفير طريقة بسيطة وآمنة للمطورين للتعامل مع كلمات المرور، مع إخفاء تعقيدات العمليات التشفيرية خلف واجهة برمجة تطبيقات (API) بديهية. تدعم المكتبة أكثر من 30 خوارزمية تشفير مختلفة، بدءًا من المعايير الحديثة وصولاً إلى الصيغ القديمة لضمان التوافق.

لماذا Passlib ضرورية للتطوير الحديث

مشاكل الطرق التقليدية

لا يزال العديد من المطورين يستخدمون طرقًا قديمة لتشفير كلمات المرور، مثل تطبيق SHA-256 أو MD5 ببساطة. هذه الطرق تعاني من عيوب خطيرة:

  • غياب الحماية من جداول قوس قزح (Rainbow Tables)
  • قابلية التعرض لهجمات التخمين (Brute Force)
  • عدم القدرة على التكيف مع زيادة القوة الحاسوبية
  • غياب الحماية من هجمات التوقيت (Timing Attacks)

مزايا النهج الحديث

Passlib تحل هذه المشاكل من خلال توفير:

  • إضافة ملح (Salt) تلقائي لكل كلمة مرور
  • عدد قابل للتعديل من التكرارات لإبطاء الهجمات
  • حماية من هجمات التوقيت عبر وقت تنفيذ ثابت
  • إمكانية الترحيل بين الخوارزميات دون فقدان البيانات

التثبيت والإعداد

التثبيت الأساسي

pip install passlib

التثبيت مع دعم الخوارزميات الإضافية

للوصول إلى خوارزميات التشفير الحديثة، يُوصى بتثبيت التبعيات الإضافية:

pip install passlib[bcrypt,argon2]

التحقق من التثبيت

بعد التثبيت، يمكنك التحقق من الخوارزميات المتاحة:

from passlib import registry
print(registry.list_crypt_handlers())

الهيكل والمكونات الأساسية

هيكل المكتبة

تم بناء Passlib على هيكل معياري يتضمن:

  • معالجات الخوارزميات (Hash Handlers) — تطبيقات الخوارزميات المحددة
  • سياق التشفير (CryptContext) — إدارة مركزية للإعدادات
  • سجل الخوارزميات (Registry) — نظام لتسجيل والبحث عن المعالجات
  • الأدوات المساعدة — وظائف مساعدة للعمليات الآمنة

مبادئ العمل

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

بداية سريعة

تشفير بسيط

from passlib.hash import pbkdf2_sha256

# إنشاء التشفير
password = "my_secure_password"
hash_value = pbkdf2_sha256.hash(password)
print(f"التشفير: {hash_value}")

# التحقق من كلمة المرور
is_valid = pbkdf2_sha256.verify(password, hash_value)
print(f"كلمة المرور صحيحة: {is_valid}")

استخدام CryptContext

from passlib.context import CryptContext

# إنشاء سياق مع خوارزميات متعددة
pwd_context = CryptContext(
    schemes=["bcrypt", "pbkdf2_sha256"],
    default="bcrypt",
    deprecated="auto"
)

# التشفير والتحقق
hash_value = pwd_context.hash("user_password")
is_valid = pwd_context.verify("user_password", hash_value)

خوارزميات التشفير المدعومة

الخوارزميات الحديثة الموصى بها

Argon2

الفائز في مسابقة Password Hashing Competition لعام 2015. يوفر حماية من الهجمات

توصيات