
مكتبة تشفير مكتفية بذاتها للغة Python
.. image:: https://github.com/Legrandin/pycryptodome/workflows/Integration%20test/badge.svg :target: https://github.com/Legrandin/pycryptodome/actions
.. image:: https://badge.fury.io/py/pycryptodome.svg :target: https://pypi.org/project/pycryptodome
.. image:: https://badge.fury.io/py/pycryptodomex.svg :target: https://pypi.org/project/pycryptodomex
PyCryptodome هي حزمة بايثون مكتفية بذاتها من البدائيات التشفيرية منخفضة المستوى.
وهي تدعم بايثون 2.7، وبايثون 3.7 وما أحدث، وPyPy.
تختلف إجراءات التثبيت اعتمادًا على الحزمة التي تريد أن تكون المكتبة ضمنها. يمكن استخدام PyCryptodome على النحو التالي:
#. بديل شبه مباشر للمكتبة القديمة PyCrypto. يمكنك تثبيتها باستخدام::
pip install pycryptodome
في هذه الحالة، تُثبَّت جميع الوحدات ضمن حزمة Crypto.
يجب تجنب تثبيت كل من PyCrypto وPyCryptodome في الوقت نفسه، لأنهما سيتعارضان مع بعضهما.
لذلك لا يُنصح بهذا الخيار إلا عندما تكون متأكدًا من أن التطبيق بأكمله يُنشر في virtualenv.
#. مكتبة مستقلة عن PyCrypto القديمة. يمكنك تثبيتها باستخدام::
pip install pycryptodomex
في هذه الحالة، تُثبَّت جميع الوحدات ضمن حزمة Cryptodome.
يمكن أن يتعايش PyCrypto وPyCryptodome معًا.
للحصول على عمليات مفاتيح عامة أسرع في يونكس، يجب تثبيت GMP_ في نظامك.
PyCryptodome هو فرع (fork) من PyCrypto. يقدّم التحسينات التالية مقارنةً بآخر إصدار رسمي من PyCrypto (2.6.1):
أوضاع تشفير موثَّقة (GCM, CCM, EAX, SIV, OCB, KW, KWP)
تشفير المفاتيح العامة الهجين (HPKE)
تسريع AES على منصات إنتل عبر AES-NI
دعم من الدرجة الأولى لـ PyPy
تشفير المنحنيات الإهليلجية (منحنيات NIST P؛ Ed25519, Ed448, Curve25519, Curve448)
واجهة برمجة تطبيقات أفضل وأكثر إحكامًا (خصائص nonce وiv للتشفيرات،
والتوليد التلقائي لقيم nonce وIV العشوائية، ووضع تشفير CTR مبسّط، والمزيد)
خوارزميات تجزئة SHA-3 (FIPS 202) والدوال المشتقة (NIST SP-800 185):
KangarooTwelve وTurboSHAKE128 وTurboSHAKE256 من دوال XOF
خوارزميات تجزئة مبتورة SHA-512/224 وSHA-512/256 (FIPS 180-4)
خوارزميات التجزئة BLAKE2b وBLAKE2s
تشفيرات التدفق Salsa20 وChaCha20/XChaCha20
كود مصادقة الرسائل Poly1305
تشفيرات موثَّقة ChaCha20-Poly1305 وXChaCha20-Poly1305
دوال اشتقاق المفاتيح scrypt وbcrypt وHKDF ووضع العداد NIST SP 800 108r1
التوقيعات الحتمية (EC)DSA وEdDSA
حاويات مفاتيح PKCS#8 المحمية بكلمة مرور
مخطط مشاركة السر لشامير (Shamir)
يتم الحصول على الأرقام العشوائية مباشرةً من نظام التشغيل (وليس من مولد أرقام عشوائية CSPRNG في فضاء المستخدم)
عملية تثبيت مبسّطة، بما في ذلك دعم أفضل لنظام ويندوز
توليد مفاتيح RSA وDSA أنظف (يعتمد إلى حد كبير على FIPS 186-4)
تنظيفات رئيسية وتبسيط لقاعدة التعليمات البرمجية
PyCryptodome ليس غلافًا لمكتبة C منفصلة مثل OpenSSL. إلى أقصى حد ممكن، تُنفَّذ الخوارزميات بلغة بايثون الخالصة. فقط الأجزاء الحرجة جدًا للأداء (مثل تشفيرات الكتل) تُنفَّذ كإضافات بلغة C.
لمزيد من المعلومات، راجع الصفحة الرئيسية_.
للقضايا الأمنية، يرجى إرسال بريد إلكتروني إلى [email protected].
يمكن تنزيل جميع التعليمات البرمجية من GitHub_.
.. _الصفحة الرئيسية: https://www.pycryptodome.org
.. _GMP: https://gmplib.org
.. _GitHub: https://github.com/Legrandin/pycryptodome