一 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必须一致,否则数据不会被还原。