سؤال

بالنسبة لبعض البيانات الحساسة ، قررت تخزينها على القرص. لقد قمت بتطبيق التشفير باستخدام Pycrypto.

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

اعتقدت ماكريببت يمكن أن يكون خيارًا.

هذه هي حالة الاختبار الخاصة بي للحصول على بعض النص المشفر المكتوبة:

import Crypto.Cipher.AES
import sys

pwd  = 'qwertzuiopasdfgh'
mode = Crypto.Cipher.AES.MODE_CBC
aes  = Crypto.Cipher.AES.new( pwd, mode )
text = 'asdfghjklyxcvbnm'
sys.stdout.write( aes.encrypt( text ) )

لقد قمت بإعادة توجيه الإخراج إلى ملف out.nc وحاول فك التشفير بواسطة

mcrypt -d -b -k qwertzuiopasdfgh -a rijndael-128 -m CBC out.nc

لكن الملف الناتج out لديه حجم بايت صفر ، للأسف.

آمل أن يكون هناك مزيج من الخيارات لـ Mcrypt لجعل هذا العمل ...

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

المحلول

لماذا من المهم أن تكون قادرًا على التعافي بدون pycrypto؟ يمكنك ببساطة إطلاق VM مع نظام التشغيل القديم والإصدار القديم لـ Pycrypto ، وتصدير بياناتك ، وإعادة التشفير باستخدام خوارزمية وتنفيذ مختلفة.

نصائح أخرى

أعتقد أن المشكلة قد تكمن في حقيقة أنك لا توفر IV لوضع CBC وبدون IV ، ربما يتعامل Mcrypt و Pycrypto بشكل مختلف باستخدام IVs افتراضي مختلف. لقد رأيت بعض التطبيقات (phpseclib على سبيل المثال) استخدام و IV من 16 بايت فارغ بشكل افتراضي. قد لا يفعل Mcrypt هذا.

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