解密从iOS接收的数据在大数据上失败 - PHP


Decrypting data received from iOS fail on big data - PHP

我从这里使用aesEncryptWithStaticIV()来加密数据。

对于文本数据"测试",函数给我加密的结果065TnFFNwQFRjPZk6l8luw==PHP 成功解密了它。

但有了"真实"数据

例如:"progression|*|D4E1B270-06DD-4A|*|25|*|342|*|159|*|10|*|1457454939636.0"

php没有正确解密数据,给我"m/^(_2<=Q9KBu#~<,s+z'sS)''nrMc-o|PCxJNo/"

这是PHP解密功能:

function decrypt($data) {
    $code = base64_decode ( urldecode ( $data ) );
    $iv = $this->iv;
    $td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv);
    mcrypt_generic_init($td, $this->key, $iv);
    $decrypted = mdecrypt_generic($td, $code);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
    return trim(preg_replace('/['x00-'x1F'x80-'xFF]/', '', $decrypted));
}

和这里加密数据的过程(由HTTP POST发送):

let dump = try! data.stringByAddingPercentEncodingForRFC3986()!.aesEncrypt()

我不明白为什么它只适用于短/简单的数据?

只需从 php 中删除 urldecode(),不明白为什么,但它会腐蚀数据,但视觉上没有区别......