我无法使用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数据库,以便接受这些字符?
答案 0 :(得分:1)
密码的输出是一串字节,而不是字符。您不应将密文直接存储为文本。使用“二进制”数据类型,或使用类似Base-64的方式将字节字符串转换为文本。
答案 1 :(得分:0)
将列类型更改为二进制,这可能有效。
答案 2 :(得分:0)
确保您正在转义加密的字符串。这是正确行事的一个重要部分!
我一直在使用MySQL和Mcrypt,我将加密数据和初始化向量存储为二进制文件,并在将它们放入查询之前将所有这些字符串转义。像魅力一样。