是否可以在 ECB(如 CBC)以外的模式下使用 MySQL 的 AES_ENCRYPT 和 AES_DECRYPT 函数? Stack Overflow 上的各种问题讨论了 MySQL 如何使用 ECB 模式以及如何不使用这些功能。我最好用我正在使用的编程语言进行加密/解密吗?
最佳答案
不,这对 SQL 查询来说会有问题。 ECB 模式对数据库很有用,因为它没有 IV,并且存在 1:1 的密文:明文关系。
select * from users where secret=aes_encrypt("some secret")
如果您在 CBC 模式下使用 IV,则必须遍历每条记录。这就是选择 ECB 模式的原因。尽管普遍认为 ECB 模式并不总是问题,但 CBC 模式通常会引入使用解密 oracle 进行 CBC-R 攻击的可能性。
关于mysql - 在另一种模式下使用 AES_ENCRYPT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13276725/