0

日本語のテキストを暗号化してエンコードし、それを復号化するサードパーティに送信したいと考えています。

//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 エンコーディングに問題はありますか?

ありがとう、

4

0 に答える 0