我想使用RSA算法加密字符串,然后使用python中的SQLAlchemy将该字符串存储到postgres数据库中。然后检索加密的字符串并使用相同的密钥对其进行解密。我的问题是存储在数据库中的值与实际加密的字符串不同。存储加密值的列的数据类型是bytea。我正在使用pycrypto库。在将数据插入数据库表之前,是否需要更改特定格式的数据?
请提出任何建议。
谢谢, 塔拉辛格
答案 0 :(得分:1)
通过“相同的密钥”你的意思是“另一把钥匙”,对吗? RSA为您提供了一个密钥对,如果您使用另一个密码对其进行加密...
除此之外,它听起来像编码问题。尝试将数据存储为二进制文件或使用数据库排序规则对字符串进行编码。
基本上加密为您提供字节,但您将它们存储为字符串(编码字节)。
答案 1 :(得分:0)
我认为SQLAlchemy文档包含一个使用'hybrid'属性的'recipe'示例。我并不自称完全理解或尝试过,但你可能会发现它很有用:
http://www.sqlalchemy.org/trac/wiki/UsageRecipes/SymmetricEncryption