PHP からのデータを暗号化して iOS に送信しようとしています (RNCryptor ライブラリを使用しています)。
私はgithub Data-Formatを読み、 php でこのアルゴリズムを開発しました。
function encrypt($data, $key)
{
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$keySalt = '12345678';
$hmacSalt = '12345678';
$_key = pbkdf2('SHA1', $key, $keySalt , 10000, 32, true);
$_hmacKey = pbkdf2('SHA1', $key, $hmacSalt, 10000, 32, true);
$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $_key, $data, MCRYPT_MODE_CBC, $iv);
$data = base64_encode(chr(2).chr(0).$keySalt.$hmacSalt.$iv.$ciphertext.hash_hmac('SHA256',$ciphertext,$_hmacKey, true));
return $data;
}
ただし、データがphpに送信されると. iOS デバッグ ツールで次のようなエラーを受け取りました。
Error Domain=net.robnapier.RNCryptManager Code=-4300 "The operation coulnd't be completed. (net.robnapier.RNCryptManager error - 4300.)";
私は多くのウェブサイトを見てきました。また、github Web サイトを段階的にたどりましたが、まだ正しい答えを見つけることができません。