无法将加密文本插入 sql


Cannot insert encrypted text into sql

我目前在 php 中使用 openssl_public_encrypt 方法加密使用 GET 发送到服务器的消息(这只是一个理论证明),如果我尝试将加密文本存储到数据库中,我最终得到的结果:"您的 SQL 语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法",即使此错误不会以明文形式发生。

用于生成密钥的代码:

$config = array(
"digest_alg" => "sha512",
"private_key_bits" => 4096,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
);

创建私钥和公钥 $res = openssl_pkey_new($config);

私钥从$res提取到$privKey openssl_pkey_export($res、$privKey);

将公钥从$res提取到$pubKey $pubKey = openssl_pkey_get_details($res); $pubKey = $pubKey["密钥"];

openssl_public_encrypt($message、$encrypted、$pubKey); $sql ="插入na14_messaging .messagesToFromFormessage ) 值 ('$To', '$From', '$For', $encrypted )";

加密字符串示例:@aú¡±ñþú]Ð1/23/4ÄÉçù''dgQppx+Þ ̃ŽüÑzXê+¡™1/2ºWÏãУú]¢c—Ä'õ›μCŽ{¶f¶³"câÂ",hK‹á[àžÑõ~Ÿ-ëòqÊ"ÏAÁ{™OMu£öÈåmL¶9j1/2m ̈eë]|ñN šÈo|"̃û AûÉ{q¤<'ˆVÿ ¤û*.÷+j'iâÜËu_öSÏ ̃þ HX_Î ƒâñ'ÎãDÌÛó겿23/4GÀ5ûÃ'᮫ '§=¹0åÿŸ¦ácü¤l1/4ÛmÚ!ysŽH2È«™®''šP÷ÒÕˆ.ºjôÊEŠ»'LrñboïVܶÓFw~3‡ÛŽ.Z,?:îawxRã^ ̃>:μ-áÒ©'<ûQ8'•"ÕC9Ç[''£vU¶°6‡Þts><Çg¢8Y8›$c>Ñ3/4)"fá+ž ØÓ•¿1/4€äF£Þ''ZjxÂS#þ³"zÇù áçd¥qw'mn$eî' $•Ñæ6Ð 1/2žS™™ÕÍPƒuâÛŸ%'o7b ̄gŸ»™ D[³%ådKÁ·¶ Et×y © [ ̃Û•g@? °Ü÷§Ý± ³Õßý‹ ̧Åå¡Ð{(Ö'f;w–3ïMkHÿÇùÒ1•ÏåÜ

我假设只是字符导致了将其放入数据库的错误,我已经尝试了 varchar、长文本和 blob。我不确定哪种数据类型适用于此。

将 SQL 变量更改回长文本以及编码为 base64 已修复发生的所有问题。