如何存储mcrypt_module_open('rijndael-256','','ofb','');在MYSQL中

时间:2011-12-22 05:21:03

标签: php mysql mcrypt

我在将mcrypt_module_open('rijndael-256','','ofb','');存储在MySQL数据库中时遇到了一些问题。

当它将加密数据插入MySQL数据库时,它看起来像˜9ÏÏd‰

看起来应该是这样的

  

÷`¥¶Œ“¼|q... EOC

我想知道我是否必须采取措施让它发挥作用?

3 个答案:

答案 0 :(得分:3)

  • 使用blob字段类型存储二进制数据(BLOB,VARBINARY,BINARY)
  • 如果您还没有这样做:如果您在SQL语句中直接使用它们,请使用正确的方法转义您的值。甚至更好:使用查询参数/预准备语句。
  • 作为最后的手段,您只需使用base64_encodebin2hex对数据进行编码。
  • 如果要在控制台或浏览器中显示二进制数据(即使是出于调试目的),也可以使用其中一种编码。否则,您可能看不到实际数据,因为浏览器可能无法正确显示二进制文件。

答案 1 :(得分:1)

一般来说,对这样的二进制数据进行base64编码和解码可能是个好主意。请参阅Best way to use PHP to encrypt and decrypt passwords?

答案 2 :(得分:0)

您是否尝试过对角色所支持的桌子进行整理。

字符'÷`¥¶Œ“¼| q ...ËoÇ'看起来像UTF-8或其他字符集,找到字符的字符集并根据您的字符集更新表格校准