假设我在一个表中有一整列是加密的,该表也有未加密的列,如 ID,我有整列的加密 key ,我使用 DBMS 的 encrypt() 函数和 AES 来存储
我想知道是否有执行类似的东西
SELECT * FROM table1 WHERE decrypt(col1, 'fooz', 'aes') = 'aValue'
我已经在 PostgreSQL 中尝试过,但不支持上述语法。如果没有办法做到这一点,解决方法是什么?
我研究过解密到一个临时表,然后执行查询并删除它,但这看起来效率极低而且也不安全,因为解密的表有可能保留在磁盘上
最佳答案
伪代码
SELECT * FROM table1 WHERE col1 = encrypt('avalue','fooz','aes');
或者更具体地说:
真实代码
SELECT * FROM table1
WHERE col1 = pgp_sym_encrypt('avalue', 'apasswordwithsomeentropy'
,'compress-algo=1, cipher-algo=aes256');
关于sql - PostgreSQL 可以对加密记录进行查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7753375/