函数名称:mcrypt_decrypt()
函数描述:该函数用于解密使用mcrypt_encrypt()函数加密的数据。
适用版本:该函数在PHP 5.3.0及以上版本可用。
语法:string mcrypt_decrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )
参数:
- $cipher:加密算法,如MCRYPT_RIJNDAEL_128、MCRYPT_DES等。
- $key:用于加密和解密的密钥,必须是16、24或者32字节的长度。
- $data:要解密的数据。
- $mode:加密模式,如MCRYPT_MODE_CBC、MCRYPT_MODE_ECB等。
- $iv:初始化向量(可选),在某些加密模式下需要使用。
返回值:返回解密后的数据,如果解密失败则返回false。
示例:
$key = "MySecretKey123"; // 密钥
$data = "encrypted data"; // 要解密的数据
$cipher = MCRYPT_RIJNDAEL_128; // 加密算法
$mode = MCRYPT_MODE_CBC; // 加密模式
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher, $mode), MCRYPT_RAND); // 初始化向量
$decryptedData = mcrypt_decrypt($cipher, $key, $data, $mode, $iv);
if ($decryptedData === false) {
echo "解密失败";
} else {
echo "解密后的数据:" . $decryptedData;
}
注意事项:
- 密钥的长度必须符合加密算法的要求,通常是16、24或32字节。
- 初始化向量(IV)在某些加密模式下是必须的,可以使用mcrypt_create_iv()函数生成。
- 加密算法和加密模式需要根据具体需求选择合适的值。
- 解密失败时,返回false。可以通过判断返回值来确定解密是否成功。
- 在PHP 7.1.0版本之后,mcrypt扩展被废弃,建议使用openssl扩展代替。