我使用这样的f-n来加密\ decrypt
<?
//Encrypt Function
function mc_encrypt($encrypt, $mc_key) {
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
$passcrypt = trim(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $mc_key, trim($encrypt), MCRYPT_MODE_ECB, $iv));
$encode = base64_encode($passcrypt);
return $encode;
}
// Decrypt Function
function mc_decrypt($decrypt, $mc_key) {
$decoded = base64_decode($decrypt);
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
$decrypted = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $mc_key, trim($decoded), MCRYPT_MODE_ECB, $iv));
return $decrypted;
}
?>
如果我调用mc_encrypt('test','pass')所有解密都可以,但如果我调用mc_encrypt('test = value','pass')我无法解密。为什么?我该怎么办?
答案 0 :(得分:1)
你应该告诉我们会发生什么,即你叫什么代码,你期望什么,以及出现什么。我们无法猜测“我无法解密”的含义。
我已经可以给你一个建议了:
$passcrypt = trim(mcrypt_encrypt(
MCRYPT_RIJNDAEL_256, $mc_key, trim($encrypt), MCRYPT_MODE_ECB, $iv));
请勿混淆输入数据[trim($encrypt)
]。如果调用者想修剪字符串,请将其保留给他们。否则,如果您的输入字符串有空格要修剪,您将最终加密不同的字符串而不是传入。这只能以泪水结束。