php mcrypt和不同的服务器
我有这样的密码php mcrypt和不同的服务器,php,encryption,mcrypt,Php,Encryption,Mcrypt,我有这样的密码 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_RIJN
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中将加密数据传递到不同的服务器,我无法解密(获取这样的字符串ŸTe³qëyÀ221;)
密钥等于,结果放入抛出urlencode\URLEDECODE不解密
尝试将vector mcrypt_create_iv-nothing传递给decypher,您需要具有用于加密的相同初始化向量(
$iv
)
将其作为参数传递给函数,一切都应该正常。若要删除密码,需要使用与加密相同的初始化向量(
$iv
)
把它作为一个参数传递给你的函数,一切都会好起来。这是一个愚蠢的密码,一个键可以工作,另一个键不能编码,这是一个可怕的错误!把初始化向量看作键的一部分,IV不是键的一部分。可以在clear中提供IV;钥匙显然不能。事实上,它通常是以明文形式提供的。我的意思是“钥匙的一部分”,如“你需要它来解密”=)这是如此愚蠢的密码,用一个钥匙它工作,用另一个钥匙不编码这是一个可怕的错误!把初始化向量看作键的一部分,IV不是键的一部分。可以在clear中提供IV;钥匙显然不能。事实上,它通常是以明文形式提供的。我指的是“钥匙的一部分”,如“你需要它来解密”=)