根据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() 函数也可能不安全,因为它们没有记录
如果它们以易受攻击的方式完成,则加密可能非常弱。这是否重要取决于您的用例。