mysql - 在另一种模式下使用 AES_ENCRYPT

标签 mysql security encryption cryptography aes

是否可以在 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/

相关文章:

mysql - 子查询还是 INNER JOIN?

php - 如何防止 PHP 中的 SQL 注入(inject)?

C# 如何禁用本地用户帐户的交互式登录。类似于网络服务帐户

javascript - 在javascript中添加到期时间

c++ - InDev 基于位的加密程序中未知的 C++ 堆损坏,C++ 编程的新手

php - 如何使用 Laravel 5 在选择标签中循环数据

mysql - 按月份范围选择记录

JAVA - 检索/存储用户名和密码到服务器的安全方法?

java - EWS java检查电子邮件是否加密

mysql - 我想从 SQL 中的表中更新数量,通过检查 MIN(Exp Date) 和条形码