在PHP中对查询字符串进行加密和解密

在PHP中对查询字符串进行加密和解密,php,get,query-string,encryption,Php,Get,Query String,Encryption,我在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, ENCRYPT

我在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;
}  

在我加密的带有查询字符串的锚定标记上有url

<a href="SomePage.php?action=<?php include_once ('EncryptionLibrary.php');
echo EncryptString("IamData"); ?>

INITIALIZATION\u VECTOR
的值每次都不同。对于使用IV的模式,您需要使用相同的IV进行加密和解密。

我正在通过选项进行加密。(a) 使用不使用IV的模式(如EBC)。(b)将IV发送到页面(不需要保密)。(c) 手动创建一次IV。硬编码它[],可能使用序列化和非序列化。[]我不敢相信我建议您硬编码数据。不要告诉任何人我说的。
if (isset($_GET["action"]))
{
        echo trim(DecryptString($_GET["action"]));
}