IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

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

PHPec 2009-10-16 12:06:43 累计浏览 4,840 次
本机暂存

    有些应用需要双向的加密处理,以前一直自己写算法去实现,效果都不是很理想,原来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. 绿盟科技《APT组织研究年鉴》(2026 版)正式发布 (2026-06-16 20:21:10)
  2. 【已复现】Linux内核Fragnesia权限提升漏洞(CVE-2026-46300) (2026-06-15 10:53:58)
  3. 企业文档安全最佳实践(二):给文档上“身份证”——手动标密与智能自动标密 (2026-06-12 17:18:33)

查看更多 安全 文章 →

建议继续学习

  1. 使用gettext来支持PHP的多语言 (累计阅读 39,258)
  2. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,157)
  3. Paypal接口详细代码(PHP版,非API接口) (累计阅读 19,404)
  4. 微信扫码登录网页实现原理 (累计阅读 17,452)
  5. 我的PHP,Python和Ruby之路 (累计阅读 13,140)
  6. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,783)
  7. 15个最好的免费开源电子商务平台 (累计阅读 12,530)
  8. Redis消息队列的若干实现方式 (累计阅读 12,077)
  9. 到底什么是MVC? (累计阅读 11,851)
  10. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,693)