如何解密 mysql db 中的所有行

How to decrypt all rows from mysql db

希望这不是一个已经回答的问题,但我希望能够 select 在解密它的同时进行所有操作,类似于像下面那样 select * from

$sql = $conn->prepare("SELECT AES_DECRYPT(*, UNHEX('...");
$sql->execute(array("test2", "test2"));

但这似乎不起作用,会产生语法错误。还有其他办法吗?

I want to be able to select everything while decrypting it similar to just doing select * from

你不能那样做。 AES_DECRYPT() 和姊妹函数 AES_ENCRYPT() 对字符串而不是记录进行操作。

您确实需要为要解密的每一列重复函数调用:

select
    aes_decrypt(col1, ...) as decrypted_col1,
    aes_decrypt(col2, ...) as decrypted_col2,
    ...
from mytable