كيف يمكنني (بنجاح) فك كلمة السر المشفرة من سطر الأوامر بينسل؟

StackOverflow https://stackoverflow.com/questions/426294

سؤال

وعن طريق PyCrypto (على الرغم من أنني حاولت ذلك في ObjC مع الارتباطات بينسل أيضا):

from Crypto.Cipher import DES
import base64
obj=DES.new('abcdefgh', DES.MODE_ECB)
plain="Guido van Rossum is a space alien.XXXXXX"
ciph=obj.encrypt(plain)
enc=base64.b64encode(ciph)
#print ciph
print enc

والنواتج base64 في القيمة المشفرة من:

ESzjTnGMRFnfVOJwQfqtyXOI8yzAatioyufiSdE1dx02McNkZ2IvBg==

إذا كنت في مترجم، سوف ciph تعطيك

'\x11,\xe3Nq\x8cDY\xdfT\xe2pA\xfa\xad\xc9s\x88\xf3,\xc0j\xd8\xa8\xca\xe7\xe2I\xd15w\x1d61\xc3dgb/\x06'

من السهل بما فيه الكفاية. وأود أن تكون قادرة على الأنابيب هذا الناتج إلى بينسل وترجم ذلك:

وأنا اختبار للتأكد من أن يعمل فك B64 -

python enctest.py | openssl enc -base64 -d
+ python enctest.py
+ openssl enc -base64 -d
,?Nq?DY?T?pA???s??,?jب???I?5w61?dgb/

وليس جميلا، ولكن يمكنك أن ترى أن حصلت على فك غرامة، "DGB" و "كيو" لا تزال هناك.

ولكن الذهاب للشيء الكامل:

python enctest.py | openssl enc -base64 -d | openssl enc -nosalt -des-ecb -d -pass pass:abcdefgh
+ python enctest.py
+ openssl enc -nosalt -des-ecb -d -pass pass:abcdefgh
+ openssl enc -base64 -d
bad decrypt
15621:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:461:
j?7????vc]???LE?m³??q?

وماذا أفعل الخطأ؟ لقد حاولت استخدام -k ABCDEFGH -iv 0000000000000000 أو الكتابة في كلمة المرور بشكل تفاعلي - نفس المشكلة

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

المحلول

و echo ESzjTnGMRFnfVOJwQfqtyXOI8yzAatioyufiSdE1dx02McNkZ2IvBg== | openssl enc -nopad -a -des-ecb -K 6162636465666768 -iv 0 -p -d

و6162636465666768 هو ASCII "ABCDEFGH" الذي كتبه في ست عشرية.

ولكن لاحظ أن DES في وضع البنك المركزي الأوروبي هو على الارجح ليست طريقة جيدة لتشفير كلمات السر وليس "DES سرداب" كما كنت قد سمعت من المستخدمة على أنظمة يونكس. (لكلمات السر، فإنه عادة ما يكون من الأفضل استخدام خوارزمية التي يصعب العكس (التحقق من كلمة المرور عن طريق تجديد النتيجة بدلا فك تشفير كلمة المرور المخزنة). حتى لو كنت لا تحتاج إلى أن تكون قادرة على فك تشفير هذه كلمات السر مشفرة، واحد-DES و خصوصا البنك المركزي الأوروبي هي خيارات سيئة بقدر ما تشعر بالقلق السرية).

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