PHP使用DES进行加密与解密的方法详解


Posted in PHP onJune 06, 2013

DES是一种标准的数据加密算法,关于这个算法的详细介绍可以参考wiki和百度百科:

wiki百科    百度百科

php中有一个扩展可以支持DES的加密算法,是:extension=php_mcrypt.dll

在配置文件中将这个扩展打开还不能够在windows环境下使用

需要将PHP文件夹下的 libmcrypt.dll 拷贝到系统的 system32 目录下,这是通过phpinfo可以查看到mcrypt表示这个模块可以正常试用了。

下面是PHP中使用DES加密解密的一个例子:

//$input - stuff to decrypt
    //$key - the secret key to use
    function do_mencrypt($input, $key)
    {
        $input = str_replace(""n", "", $input);
        $input = str_replace(""t", "", $input);
        $input = str_replace(""r", "", $input);
        $key = substr(md5($key), 0, 24);
        $td = mcrypt_module_open('tripledes', '', 'ecb', '');
        $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
        mcrypt_generic_init($td, $key, $iv);
        $encrypted_data = mcrypt_generic($td, $input);
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
        return trim(chop(base64_encode($encrypted_data)));
    }
    //$input - stuff to decrypt
    //$key - the secret key to use
    function do_mdecrypt($input, $key)
    {
        $input = str_replace(""n", "", $input);
        $input = str_replace(""t", "", $input);
        $input = str_replace(""r", "", $input);
        $input = trim(chop(base64_decode($input)));
        $td = mcrypt_module_open('tripledes', '', 'ecb', '');
        $key = substr(md5($key), 0, 24);
        $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
        mcrypt_generic_init($td, $key, $iv);
        $decrypted_data = mdecrypt_generic($td, $input);
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
        return trim(chop($decrypted_data));
    }  
PHP 相关文章推荐
模拟OICQ的实现思路和核心程序(二)
Oct 09 PHP
自动生成文章摘要的代码[PHP 版本]
Mar 20 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
May 09 PHP
PHP文章按日期(月日)SQL归档语句
Nov 29 PHP
php读取excel文件示例分享(更新修改excel)
Feb 27 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
php实现图片缩略图的方法
Mar 29 PHP
joomla实现注册用户添加新字段的方法
May 05 PHP
thinkphp框架下404页面设置 仅三步
May 14 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
May 05 PHP
如何在Laravel之外使用illuminate组件详解
Sep 20 PHP
php xml常用函数的集合(比较详细)
Jun 06 #PHP
PHP5函数小全(分享)
Jun 06 #PHP
解析php时间戳与日期的转换
Jun 06 #PHP
基于header的一些常用指令详解
Jun 06 #PHP
深入php 正则表达式的学习探讨
Jun 06 #PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
Jun 06 #PHP
PHP CodeBase:将时间显示为"刚刚""n分钟/小时前"的方法详解
Jun 06 #PHP
You might like
《OVERLORD》第四季,终于等到你!
2020/03/02 日漫
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
php查看网页源代码的方法
2015/03/13 PHP
php自定义错误处理用法实例
2015/03/20 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
2016/09/22 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
javascript hashtable 修正版 下载
2010/12/30 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
js+html5实现canvas绘制镂空字体文本的方法
2015/06/05 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
JavaScript获取ul中li个数的方法
2017/02/13 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
vue和iview实现Scroll 数据无限滚动功能
2019/10/31 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
2020/01/02 Javascript
[01:11:02]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python引用DLL文件的方法
2015/05/11 Python
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
Python学习思维导图(必看篇)
2017/06/26 Python
Python实现Dijkstra算法
2018/10/17 Python
python模糊图片过滤的方法
2018/12/14 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
2021/02/26 Python
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
车辆安全隐患排查制度
2015/08/05 职场文书
在js中修改html body的样式
2021/11/11 Javascript