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版
Apr 20 PHP
PHP实现根据浏览器跳转不同语言页面代码
Aug 02 PHP
初识PHP
Sep 28 PHP
Yii框架form表单用法实例
Dec 04 PHP
php常见的魔术方法详解
Dec 25 PHP
php绘图之生成饼状图的方法
Jan 24 PHP
PHP中使用php://input处理相同name值的表单数据
Feb 03 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
Jul 14 PHP
php获取ip及网址的简单方法(必看)
Apr 01 PHP
PHP实现微信提现(企业付款到零钱)
Aug 01 PHP
在laravel5.2中实现点击用户头像更改头像的方法
Oct 14 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中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
PHP中使用file_get_contents post数据代码例子
2015/02/13 PHP
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
第一次接触神奇的Bootstrap
2016/10/14 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
node.js中express-session配置项详解
2017/05/31 Javascript
微信小程序修改checkbox的样式代码实例
2020/01/21 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
解决elementui表格操作列自适应列宽
2020/12/28 Javascript
Python实现Linux下守护进程的编写方法
2014/08/22 Python
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
pandas读取csv文件,分隔符参数sep的实例
2018/12/12 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
2020/02/18 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
详解python如何引用包package
2020/06/07 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
Python tkinter实现日期选择器
2021/02/22 Python
Linux文件操作命令都有哪些
2016/07/23 面试题
后勤人员自我评价怎么写
2013/09/19 职场文书
行政总经理岗位职责
2013/12/05 职场文书
文员岗位职责范本
2014/03/08 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
研究生导师推荐信
2015/03/25 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书
导游词之上饶龟峰
2019/10/25 职场文书
基于Nginx实现限制某IP短时间访问次数
2021/03/31 Servers