技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 算法 --> 可逆的加密方法(Mcrypt Encryption Functions)

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

浏览:3505次  出处信息

    有些应用需要双向的加密处理,以前一直自己写算法去实现,效果都不是很理想,原来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. 网址加密(URL加密)(RC4、PHP、密钥长度可变)    (阅读:6714)
  2. 在浏览器中加密Cookie    (阅读:4339)
  3. 代理的加密部分    (阅读:4278)
  4. 使用bcompiler对PHP文件进行加密    (阅读:4193)
  5. 使用系统命令实现文件的压缩与加密    (阅读:3862)
  6. 公钥私钥加密解密数字证书数字签名详解    (阅读:3749)
  7. 加密你的shell    (阅读:3456)
  8. 具有时效性的PHP字符串加密解密函数    (阅读:2988)
  9. 如何“加密”你的email地址    (阅读:3015)
  10. 跨越千年的RSA算法    (阅读:2848)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1