我想用 aes 256 加密在我的 postgreSQL 数据库中加密 area_code 列。这就是发生的事情。我可以轻松地对其进行加密,但无法对其进行解密。
这是运行良好的加密查询:
update mytable t1 set area_code = t2.area_code from (select pgp_sym_encrypt(area_code,'Password', 'compress-algo=1, cipher-algo=aes256') as area_code,area_name from mytable) t2 where t1.area_name = t2.area_name;
但是,如果我给出类似的东西,解密查询似乎不起作用
update mytable t1 set area_code = t2.area_code from (select pgp_sym_decrypt(area_code,'Password') as area_code,area_name from mytable) t2 where t1.area_name = t2.area_name;
甚至当我尝试查看解密的 area_code
select pgp_sym_decrypt((select area_code from ci), 'Password') ;
唯一有效的是当我使用单个记录并直接输入加密文本作为输入时。
select pgp_sym_decrypt('aes.encrypted.string.given.as.input', 'Password') ;