Шифрование AES с помощью PyCrypto и дешифрование с помощью mcrypt.

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

Вопрос

Некоторые конфиденциальные данные я решил хранить на диске в зашифрованном виде AES.Я реализовал шифрование, используя ПиКрипто.

Более того, данные важны, и сохраненные зашифрованные данные будут моей единственной их копией (кроме резервных копий), поэтому я искал способы получения данных без использования PyCrypto, чтобы иметь запасной вариант, учитывая вероятность того, что PyCrypto больше не доступен. мне (по какой бы причине это ни было).

я думал mcrypt может быть вариант.

Это мой тестовый пример для написания зашифрованного текста:

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?Вы можете просто запустить виртуальную машину со старой ОС и старой версией PyCrypto, экспортировать данные и повторно зашифровать их с использованием другого алгоритма и реализации.

Другие советы

Я думаю, что проблема может заключаться в том, что вы не предоставляете IV для режима CBC, а без IV, возможно, mCrypt и PyCrypto обрабатывают его по-разному, используя разные IV по умолчанию.Я видел, как в некоторых реализациях (например, phpseclib) по умолчанию используется IV из 16 нулевых байтов.mcrypt может этого не сделать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top