Я хочу зашифровать строку с помощью RSA-алгоритма, а затем сохранить эту строку в базе данных postgres, используя SQLAlchemy в python. Затем извлеките зашифрованную строку и расшифруйте ее с помощью того же ключа. Моя проблема в том, что значение, которое хранится в базе данных, не совпадает с фактической зашифрованной строкой. Тип данных столбца, который хранит зашифрованное значение, является байтом. Я использую библиотеку pycrypto. Нужно ли мне изменять данные в определенном формате, прежде чем вставлять их в таблицу базы данных?
Любые предложения, пожалуйста.
Спасибо, Тара Сингх
Под "тем же ключом" вы подразумеваете "другой ключ", верно? RSA дает вам пару ключей, если вы зашифруете один из них, который вы расшифруете с другим...
Кроме этого, это звучит как проблема с кодировкой. Попробуйте сохранить данные как двоичные или закодировать строку с помощью сортировки баз данных.
В основном шифрование дает вам байты, но вы храните их как строку (закодированные байты).
Я думаю, что документы SQLAlchemy содержат пример "рецепта", который использует свойство "hybrid". Я не утверждаю, что понимаю это полностью или пытался это сделать, но вы можете найти это полезным:
http://www.sqlalchemy.org/trac/wiki/UsageRecipes/SymmetricEncryption