سؤال

لدي اختبار عمل لجهاز الأجهزة الذي يستخدم تشفير RSA ، في Python باستخدام M2Crypto. الآن أحتاج إلى اختبار جهاز مماثل يستخدم تشفير 3Des. لكن لا يمكنني معرفة كيفية استخدام M2Crypto للقيام بتشفير DES الثلاثي.

أعلم أنه يجب أن يكون ممكنًا من هذا الرسم البياني. لكن لسوء الحظ وثائق M2Crypto لقد وجدت سطحي. (ال الصفحة الرئيسية في http://chandlerproject.org/ يبدو أنه ذهب ، جنبا إلى جنب مع تشاندلر.)

لقد بحثت عن 3Des و "OpenSSL API" ووجدت بعضًا من الصعب الحصول على رمز C لفك تشفيره مما يجعل الأمر يبدو وكأنني بحاجة إلى استخدام m2crypto.evp.cipher. لكنني لم أجد أي أمثلة على استخدامه لـ DES. الأقرب الذي وجدته هو منشور المدونة هذا على استخدامه لتشفير AES. يبدو أنني بحاجة فقط إلى معرفة الحجج الصحيحة إلى M2Crypto.EVP.Cipher.__init__(). سأستمر في الحفر ، لكنني اعتقدت أن الأمر يستحق نشر هذا السؤال.

هل كانت مفيدة؟

المحلول 2

الكود التالي عملت بالنسبة لي:

with open(keyfile, 'rb') as f:
    key = f.read()
encrypt = 1
cipher = Cipher(alg='des_ede3_ecb', key=key, op=encrypt, iv='\0'*16)
ciphertext = cipher.update(plaintext)
ciphertext += cipher.final()

لاحظ أن KeyFile هو ملف 24 بايت (ثنائي) مع تعيين التكافؤ كما هو مطلوب في بعض الأحيان لـ DES.

لاحظ أيضًا أن وسيطة IV (على ما أظن) يتم تجاهلها عند استخدام "des_ede3_ecb" ، لكنني لم أستطع المرور None.)

نصائح أخرى

نرى هنا. يوجد مرجع لـ des ciphers التالي: 'des_ede_ecb' ، 'des_ede_cbc' ، 'des_ede_cfb' ، 'des_ede_ofb' ، 'des_ede3_ecb' ، 'des_ede3_cbc' ، 'des_ede3_cfb' ، 'des_ede3_ofb'.

يبدو أن الصفحة الرئيسية هنا حاليا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top