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.ini 时。我在 iOS 调试工具中收到了这样的错误:

Error Domain=net.robnapier.RNCryptManager Code=-4300 "The operation coulnd't be completed. (net.robnapier.RNCryptManager error - 4300.)";

我看过很多网站。我也一步步关注了github网站,但仍然找不到正确的答案。

4

0 回答 0