【问题标题】:mcrypt characters causing mysql errorsmcrypt 字符导致 mysql 错误
【发布时间】:2012-02-07 00:36:38
【问题描述】:

我无法让 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 数据库才能接受这些字符?

【问题讨论】:

    标签: php mysql encryption mcrypt


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        确保您正在转义加密的字符串。这是正确执行此操作的重要部分!

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-05-13
          • 1970-01-01
          • 1970-01-01
          • 2013-06-12
          • 1970-01-01
          • 1970-01-01
          • 2010-11-22
          • 2012-01-24
          相关资源
          最近更新 更多