Php和iOS加密程序

Php和iOS加密程序,php,ios,Php,Ios,我一直在尝试从php加密数据并将其发送到iOS(我使用RNCryptor库) 我已通读了这本书 并在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';

我一直在尝试从php加密数据并将其发送到iOS(我使用RNCryptor库)

我已通读了这本书 并在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网站,但仍然找不到正确的答案。

chr(2)。chr(0)应该是-->chr(2)。chr(1)因为您使用的是密码(检查RNCryptor的最后数据格式),我也这样做了,但仍然没有希望:(