函数名称:mcrypt_generic_init()
函数描述:该函数用于初始化加密算法的密钥和IV(初始化向量),以供后续的加密操作使用。
适用版本:该函数在PHP 4 >= 4.0.2, PHP 5, PHP 7中可用。
语法:bool mcrypt_generic_init(resource $td, string $key, string $iv)
参数:
- $td:加密算法的资源句柄,通过mcrypt_module_open()函数获取。
- $key:用于加密的密钥,长度必须符合算法要求。
- $iv:初始化向量,长度必须符合算法要求。
返回值:如果初始化成功,则返回true,否则返回false。
示例:
// 打开加密算法 $td = mcrypt_module_open('des', '', 'ecb', '');
// 生成密钥和初始化向量 $key = "this is a secret key"; $iv = "12345678";
// 初始化加密算法 if (mcrypt_generic_init($td, $key, $iv) !== false) { // 加密操作 $data = "Hello, world!"; $encrypted_data = mcrypt_generic($td, $data);
// 输出加密后的数据
echo bin2hex($encrypted_data);
// 结束加密算法
mcrypt_generic_deinit($td);
} else { echo "加密算法初始化失败"; }
// 关闭加密算法 mcrypt_module_close($td);
在上面的示例中,首先通过mcrypt_module_open()函数打开了一个DES加密算法的资源句柄$td。然后,使用mcrypt_generic_init()函数初始化了该加密算法的密钥和初始化向量。如果初始化成功,就可以使用mcrypt_generic()函数对数据进行加密操作。最后,通过mcrypt_generic_deinit()函数结束加密算法,并关闭资源句柄。