日本語のテキストを暗号化してエンコードし、それを復号化するサードパーティに送信したいと考えています。
//encryption
$get_params = '有場'
$encode_iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$encode_iv = mcrypt_create_iv($encode_iv_size,MCRYPT_RAND);
$get_params = drupal_http_build_query($data2);
//encode
$encode_crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, 'b54763051cef08bc', $get_params , MCRYPT_MODE_CBC, $encode_iv);
# prepend the IV for it to be available for decryption
$encode_crypttext = $encode_iv.$encode_crypttext;
$encode_get_params = base64_encode($encode_crypttext);
//decrpytion
$decode_iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$decode_get_params = base64_decode($encode_get_params);
$decode_iv = substr($decode_get_params, 0, $decode_iv_size);
$dec_ciphertext = substr($decode_get_params, $decode_iv_size);
$get_params2 = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, 'b54763051cef08bc', $dec_ciphertext, MCRYPT_MODE_CBC, $decode_iv);
問題は、get_params2 が "%3F%3F" を返していることです。日本語の文字を戻したいです。英語のテキストで問題なく動作します。base64 エンコーディングに問題はありますか?
ありがとう、