一 Mcrypt库常量
1、代码
<?php
$en_dir = mcrypt_list_algorithms(); //函数返回Mcrypt支持的加密算法数组
echo "Mcrypt支持的算法有:";
foreach($en_dir as $en_value){
echo $en_value." ";
}
?>
<?php
$mo_dir = mcrypt_list_modes(); //函数返回Mcrypt支持的算法模式数组
echo "<p>Mcrypt支持的加密模式有:";
foreach($mo_dir as $mo_value){
echo $mo_value." ";
}
?>
2、运行结果
Mcrypt支持的算法有:cast-128 gost rijndael-128 twofish cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes arcfour
Mcrypt支持的加密模式有:cbc cfb ctr ecb ncfb nofb ofb stream
3、说明
这些算法和模式在实际应用中要用常量表示,写的时候要分别加上前缀MCRYPT_和MCRYPT_MODE_
二 Mcrypt应用
1、代码
<?php
$str = "PHP从基础到项目实战 PHP从入门到精通"; //加密文本
$key = "key:1111"; //密钥
$cipher = MCRYPT_DES; //密码类型
$modes = MCRYPT_MODE_ECB; //密码模式
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND); //初始化向量
echo "加密前:".$str."<p>";
$str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv); //加密函数
echo "加密后:".$str_encrypt." <p>";
$str_decrypt = mcrypt_decrypt($cipher,$key,$str_encrypt,$modes,$iv); //解密函数
echo "还原:".$str_decrypt."<p>";
?>
2、运行结果
加密前:PHP从基础到项目实战 PHP从入门到精通
加密后:�/桹o笱燳�.=)� �:[嚕�<�)韢S啜�
还原:PHP从基础到项目实战 PHP从入门到精通
3、说明
加密函数和解密函数中的cipher、key和mode必须一致,否则数据不会被还原。