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 相关文章推荐
与数据库连接
Oct 09 PHP
163的邮件用phpmailer发送(实例详解)
Jun 24 PHP
php实现快速排序的三种方法分享
Mar 12 PHP
thinkphp判断访客为手机端或PC端的方法
Nov 24 PHP
在Nginx上部署ThinkPHP项目教程
Feb 02 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
Feb 14 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
Mar 18 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
Mar 23 PHP
PHP实现微信对账单处理
Oct 01 PHP
实现PHP中session存储及删除变量
Oct 15 PHP
laravel框架添加数据,显示数据,返回成功值的方法
Oct 11 PHP
PHP中多字节字符串操作实例详解
Aug 23 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
PHP根据传来的16进制颜色代码自动改变背景颜色
2014/06/13 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
js中关于一个分号的崩溃示例
2013/11/11 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
Python中的自省(反射)详解
2015/06/02 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
html5 视频播放解决方案
2016/11/06 HTML / CSS
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
瀑布模型都有哪些优缺点
2014/06/23 面试题
24岁生日感言
2014/01/13 职场文书
《孔子拜师》教学反思
2014/02/24 职场文书
高考备战决心书
2014/03/11 职场文书
小班开学寄语
2014/04/04 职场文书
党支部综合考察材料
2014/05/19 职场文书
运动会闭幕词
2015/01/28 职场文书
技术支持岗位职责
2015/02/13 职场文书
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python