ما هي مكتبة 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. يوفر حماية من الهجمات