我使用here的aesEncryptWithStaticIV()来加密数据。
对于文本数据" test",函数给我加密结果065TnFFNwQFRjPZk6l8luw==
并且PHP成功解密了它。
但是'真实'数据
例如:"
progression|*|D4E1B270-06DD-4A|*|25|*|342|*|159|*|10|*|1457454939636.0
"
php没有正确解密数据,给我&#34; m/^(_2<=Q9KBu#~<,s+z'sS)\\nrMc-o|PCxJNo/
&#34;
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发送):
让dump =试试! data.stringByAddingPercentEncodingForRFC3986()!aesEncrypt()
我不明白为什么它只使用短/简单数据?
答案 0 :(得分:0)
只需从php中删除urldecode(),不明白为什么但它会破坏数据,但在视觉上没有差异......