تشفير المفاتيح المتماثلة: Fernet
تمتلك Python مكتبة تشفير قوية تقدم Fernet، وهو نظام تشفير آمن وأفضل الممارسات. يستخدم Fernet تشفير AES CBC وتوقيع HMAC ومعلومات الإصدار والطابع الزمني لحماية البيانات. يوصى بإنشاء مفتاح باستخدام Fernet.generate_key().from cryptography.fernet import Fernet
key = Fernet.generate_key()
message = 'John Doe'
token = Fernet(key).encrypt(message.encode())
decrypted_message = Fernet(key).decrypt(token).decode() # 'John Doe'
البدائل:
الحجب: إذا فقط هناك حاجة إلى الغموض، وقد يكون ترميز Base64 كافيًا. لسلامة عنوان URL، استخدم urlsafe_b64encode().
import base64
obscured_message = base64.urlsafe_b64encode(b'Hello world!') # b'eNrzSM3...='
النزاهة فقط: يمكن لـ HMAC توفير ضمان سلامة البيانات دون تشفير.
import hmac
import hashlib
key = secrets.token_bytes(32)
signature = hmac.new(key, b'Data', hashlib.sha256).digest()
تشفير AES-GCM: يوفر AES-GCM كلاً من التشفير والتكامل، بدون حشو.
import base64
key = secrets.token_bytes(32)
ciphertext = aes_gcm_encrypt(b'Data', key) # base64-encoded ciphertext and tag
decrypted_data = aes_gcm_decrypt(ciphertext, key) # b'Data'
أساليب أخرى:
AES CFB: مشابه لـ CBC بدون حشوة.
import base64
key = secrets.token_bytes(32)
ciphertext = aes_cfb_encrypt(b'Data', key) # base64-encoded ciphertext and IV
decrypted_data = aes_cfb_decrypt(ciphertext, key) # b'Data'
AES ECB: تحذير: غير آمن! لا يوصى به لتطبيقات العالم الحقيقي.
قاعدة الاستيراد64 المفتاح = Secrets.token_bytes(32) ciphertext = aes_ecb_encrypt(b'Data', key) # نص مشفر مشفر بـ base64 decrypted_data = aes_ecb_decrypt(ciphertext, key) # b'Data'تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3