我正在使用AES_ENCRYPT()
andAES_DECRYPT()
对 mysql 数据进行加密和解密。无论我是否使用VARCHAR()
,一切都运行良好,VARBINARY()
但这仅适用于我正在检查的少量数据。我有已经VARCHAR()
格式化的记录,我更喜欢它们原样加上我想要加密的细节用户是他们的联系人和 SMS,(可以任意数量,让您了解可能的数据大小)。现在,如果我使用VARCHAR()
合理数量的字符长度,是否会更好地坚持某事或某处/有时由于某些原因或问题VARCHAR()
我不得不转向?VARBINARY()
请给我好的建议,以便我把这个问题VARBINARY()
抛在脑后,继续使用我的VARCHAR()
列类型提前。让我想到它的问题是,当我在谷歌上搜索它时,我发现用户的反应不一,有些人说是用户VARCHAR()
,VARBINARY()
有些人根本没有问题,更令人担忧的是 MYSQL 文档更喜欢或我所说的,VARBINARY()
. 我知道这可能是因为数据返回是在 BINARY/BLOB fromat 中的原因,但是为什么VARCHAR()
完全允许类型呢?希望能解决我的问题,谢谢
问问题
2307 次
1 回答
3
如下所述AES_ENCRYPT()
:
AES_ENCRYPT()
加密一个字符串并返回一个二进制字符串。
我似乎很清楚结果应该存储在二进制字符串类型列中,即VARBINARY
.
至于使用可能出现的问题VARCHAR
:
根据您的字符集,某些字节序列可能无效并且可能被拒绝;和
无意的字符集转换可能会影响您的密文。
于 2013-05-24T07:30:41.063 回答