我有这样的代码
function EnDeCrypt($text, $key, $s = 1){
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
switch ($s) {
case '0':
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($text), MCRYPT_MODE_ECB, $iv));
break;
case '1':
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv));
break;
default:
return FALSE;
break;
}
}
如果我在一个脚本中调用EnDeCrypt,一切正常,如果我尝试将加密数据传递给不同服务器的get param-i无法解密(得到这样的字符串ŸTe³qëêyÀÝ)
键等于,结果put throw urlencode \ urldecode-not decrypt
尝试传递vector mcrypt_create_iv -nothing
答案 0 :(得分:4)
要解密,您需要使用与cypher相同的初始化向量($iv
)。
将它作为参数传递给你的函数,一切都应该没问题。