根据 mysql文档

“使用 128 位密钥长度进行编码,但您可以通过修改源将其扩展到 256 位。”

但他们似乎没有提供在哪里进行更改的说明。有人经历过这种情况吗?应该更改哪个源文件?

笔记:我用 这些步骤来编译.

有帮助吗?

解决方案

我找不到mysql的帮助邮件列表

文件包含/ my_aes.h

#define AES_KEY_LENGTH 128 /* must be 128 192 or 256 */

因为我正在使用OpenSuSe 11.1需要有以下工具

sudo zypper install gcc gcc-c++ ncurses-devel

然后只需通过此指令编译它 - 此处

归功于LenZ和tripanel.net

其他提示

在客户端应用程序中执行加密可能会是一个更易于维护的解决方案。

此外,您还可以受益于对网络上传输的数据进行加密,而不是通过网络发送密钥(当然您可以使用 SSL 连接到 mysql 来缓解这种情况)。

如果这看起来不是一个好方法,请发布您的要求。

您可能不想编译自己的 mysql 二进制文件;对于开发人员来说,除了构建自己的 mysql 二进制文件之外,还有更多有用的事情要做。MySQL / Sun 的经过广泛测试,不会包含性能回归(我们希望)。


mysql AES_ENCRYPT() 函数也可能不安全,因为它们没有记录

  • 他们如何将密码散列到密钥中
  • 他们使用什么密码模式

如果它们是以易受攻击的方式完成的,那么加密可能会非常弱。这是否重要取决于您的用例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top