mcrypt字符导致mysql错误

时间:2012-01-10 15:42:50

标签: php mysql encryption mcrypt

我无法使用php的mcrypt函数以可存储在我的mysql数据库中的方式加密文本。

以下是一个不起作用的查询示例:

UPDATE mydatabase.clients SET firstname='\'å»”é¶Q' WHERE id_client=65

但如果我将其改为:

UPDATE mydatabase.clients SET firstname='Test' WHERE id_client=65

然后它有效。所以一定是那些疯狂的mcrypt角色抛弃了。

我该如何处理我的mysql数据库,以便接受这些字符?

3 个答案:

答案 0 :(得分:1)

密码的输出是一串字节,而不是字符。您不应将密文直接存储为文本。使用“二进制”数据类型,或使用类似Base-64的方式将字节字符串转换为文本。

答案 1 :(得分:0)

将列类型更改为二进制,这可能有效。

答案 2 :(得分:0)

确保您正在转义加密的字符串。这是正确行事的一个重要部分!

我一直在使用MySQL和Mcrypt,我将加密数据和初始化向量存储为二进制文件,并在将它们放入查询之前将所有这些字符串转义。像魅力一样。