加密打破MySQL查询?

时间:2013-06-05 23:18:26

标签: php mysql encryption phpseclib

嗯,作为加密的新手,我终于找到了一个很棒的系统。问题是,我很确定它会破坏我的SQL查询。如果你们中的任何人能帮助我,我相信这是我容易被忽视的事情。这是我用来生成密钥的代码:

include('Crypt/RSA.php');

$rsa = new Crypt_RSA();

extract($rsa->createKey());

这是加密代码:

openssl_public_encrypt($data, $encrypted, $publickey);
return $encrypted;

以上所有这些工作正常,我通过一个函数调用它。所有加密本身都有效。问题是当我尝试将值存储在MySQL数据库中时,我的查询会随机失败。

当我打印查询以进行调试时,我看到了加密的字符串 “��y�6u�������2�N���Ī�:������7ï¿½ï¿½ï ¿½½¿¿ïï½½½½½½½½½^ {{{{{{{{{{{{{{{{{{{{{{{{{{{ ï�'�cy/�I��#?��1Gh��$�d�

有时会过早地结束查询字符串。我想知道是否有一个我应该指定的特定字符集,或者我是否需要更改MySQL数据类型(它设置为LONGTEXT然后LONGBLOB)。

提前再次感谢!

1 个答案:

答案 0 :(得分:0)

Patashu的评论解决了我的问题。使用base64_encode()和base64_decode()可以防止查询中的错误,这显然是由查询中发送的二进制文件引起的。谢谢Patashu !!!