IT技术博客大学习 共学习 共进步

可逆的加密方法(Mcrypt Encryption Functions)

PHPec 2009-10-16 12:06:43 浏览 4,725 次

    有些应用需要双向的加密处理,以前一直自己写算法去实现,效果都不是很理想,原来PHP本身就内置一组功能强大的可逆的加密方法(Mcrypt Encryption Functions),下面记录一下,以备后用

    1)安装

    在windows下安装,只需要在php.ini加入php_mcrypt.dll扩展(可能需要将php安装目录下的libmcrypt.dll拷至system32目录)

    linux下,需先安装mcrypt(在http://mcrypt.sourceforge.net/ 下载),编译时要--disable-posix-threads,

    然后在编译php时加入--with-mcrypt

    2)例子

以下是代码片段:
  1. <?php  
  2.     $td = mcrypt_module_open(MCRYPT_DES,'','ecb',''); //使用MCRYPT_DES算法,ecb模式  
  3.   
  4.   
  5.     $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);  
  6.     $ks = mcrypt_enc_get_key_size($td);  
  7.   
  8.     $key = "ery secret key";//密钥  
  9.     $key = substr(md5($key), 0, $ks);  
  10.   
  11.   
  12.     mcrypt_generic_init($td$key$iv); //初始处理  
  13.   
  14.     //加密  
  15.     $encrypted = mcrypt_generic($td'This is very important data');  
  16.   
  17.     //结束处理  
  18.     mcrypt_generic_deinit($td);  
  19.   
  20.     //初始解密处理  
  21.     mcrypt_generic_init($td$key$iv);  
  22.   
  23.     //解密  
  24.     $decrypted = mdecrypt_generic($td$encrypted);  
  25.   
  26.     //结束  
  27.     mcrypt_generic_deinit($td);  
  28.   
  29.     mcrypt_module_close($td);  
  30.   
  31.     //解密后,可能会有后续的\0,需去掉  
  32.     echo trim($decrypted) . "\n";  
  33. ?>  

建议继续学习

  1. 代理的加密部分 (阅读 8,245)
  2. 网址加密(URL加密)(RC4、PHP、密钥长度可变) (阅读 8,001)
  3. 使用bcompiler对PHP文件进行加密 (阅读 5,383)
  4. 在浏览器中加密Cookie (阅读 5,383)
  5. 使用系统命令实现文件的压缩与加密 (阅读 5,185)
  6. 公钥私钥加密解密数字证书数字签名详解 (阅读 5,124)
  7. 加密你的shell (阅读 4,845)
  8. 跨越千年的RSA算法 (阅读 4,184)
  9. 如何“加密”你的email地址 (阅读 4,164)
  10. 具有时效性的PHP字符串加密解密函数 (阅读 4,101)