2

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 サイトを段階的にたどりましたが、まだ正しい答えを見つけることができません。

4

0 に答える 0