嗯,作为加密的新手,我终于找到了一个很棒的系统。问题是,我很确定它会破坏我的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)。
提前再次感谢!
答案 0 :(得分:0)
Patashu的评论解决了我的问题。使用base64_encode()和base64_decode()可以防止查询中的错误,这显然是由查询中发送的二进制文件引起的。谢谢Patashu !!!