0

さて、暗号化の新参者として、私はついに素晴らしいシステムを完成させました。問題は、それが私の 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�����Bï¿ ½ï¿½ï¿½ï¿½<����� ��7�;[�N\�����y/�X��߭֟*���=�-ï¿½ï¿½ï¿ Z�EI)ß�'�cy/� I��#?��1Gh��$�d�

これにより、クエリ文字列が途中で終了することがあります。指定する必要がある特定の文字セットがあるかどうか、または MySQL データ型を変更する必要があるかどうか (LONGTEXT に設定されてから LONGBLOB に設定された) かどうか疑問に思っています。

よろしくお願いします!

4

1 に答える 1

0

パタシュのコメントは私の問題を解決しました。base64_encode() と base64_decode() を使用すると、クエリでエラーが発生するのを防ぐことができました。これは、クエリでバイナリを送信したことが原因であると思われます。ありがとうパタシュ!!!

于 2013-06-06T15:38:20.987 に答える