我在php中有以下加密类
define(ENCRYPTION_KEY,"abcdegef");
define(INITIALIZATION_VECTOR,mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_DES, MCRYPT_MODE_ECB), MCRYPT_RAND));
function EncryptString($input)
{
$encrypted_string = mcrypt_encrypt(MCRYPT_DES, ENCRYPTION_KEY, $input, MCRYPT_MODE_CBC, INITIALIZATION_VECTOR);
return base64_encode($encrypted_string);
}
function DecryptString($encryptedInput)
{
$decrypted_string = mcrypt_decrypt(MCRYPT_DES, ENCRYPTION_KEY, base64_decode($encryptInput), MCRYPT_MODE_CBC, INITIALIZATION_VECTOR);
return $decrypted_string;
}
在我正在加密的查询字符串的锚标记上有网址
<a href="SomePage.php?action=<?php include_once ('EncryptionLibrary.php');
echo EncryptString("IamData"); ?>
当我尝试使用以下代码在SomePage.php上解密时...我的解密值不正确
if (isset($_GET["action"]))
{
echo trim(DecryptString($_GET["action"]));
}
答案 0 :(得分:2)
每次INITIALIZATION_VECTOR
的值都不同。对于使用IV的模式,您需要使用相同的模式进行加密和解密。