通过SQLALchemy在Postgres中插入加密数据

1 投票
2 回答
4669 浏览
提问于 2025-04-16 02:56

我想用RSA算法加密一个字符串,然后通过SQLAlchemy把这个字符串存到Postgres数据库里。接着再从数据库里取出这个加密字符串,并用同样的密钥解密。我的问题是,存到数据库里的值和实际的加密字符串不一样。存放加密值的那一列的数据类型是bytea。我正在使用pycrypto库。在把数据插入数据库表之前,我需要把数据换成特定的格式吗?

有什么建议吗?

谢谢,
Tara Singh

2 个回答

1

我觉得SQLAlchemy的文档里有一个“食谱”示例,里面使用了“混合”属性。我并不完全理解这个内容,也还没有尝试过,但你可能会觉得它有用:

http://www.sqlalchemy.org/trac/wiki/UsageRecipes/SymmetricEncryption

1

你说的 "同一个密钥" 是指 "另一个密钥",对吧?RSA加密会生成一对密钥,如果用一个密钥加密,就要用另一个密钥来解密……

除此之外,这听起来像是编码的问题。试着把数据存储为二进制格式,或者用你数据库的字符集来编码字符串。

简单来说,加密会给你 字节,但你是把它们当作 字符串(编码后的字节)来存储的。

撰写回答