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 相关文章推荐
php Xdebug的安装与使用详解
Jun 20 PHP
php采用curl模仿登录人人网发布动态的方法
Nov 07 PHP
php使用类继承解决代码重复的问题
Feb 11 PHP
Windows下编译PHP5.4和xdebug全记录
Apr 03 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
php数据访问之查询关键字
May 09 PHP
php中array_unshift()修改数组key注意事项分析
May 16 PHP
PHP如何实现跨域
May 30 PHP
Zend Framework基于Command命令行建立ZF项目的方法
Feb 18 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
thinkPHP5框架路由常用知识点汇总
Sep 15 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 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
数据库中排序的对比及使用条件详解
2012/02/23 PHP
基于header的一些常用指令详解
2013/06/06 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
ThinkPHP之用户注册登录留言完整实例
2014/07/22 PHP
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
Thinkphp3.2实用篇之计算型验证码示例
2017/02/09 PHP
PHP使用观察者模式处理异常信息的方法详解
2019/09/24 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
js倒计时小程序
2013/11/05 Javascript
js 上下左右键控制焦点(示例代码)
2013/12/14 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
解析jQueryEasyUI的使用
2016/11/22 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
使用Python制作获取网站目录的图形化程序
2015/05/04 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
Python 字典中的所有方法及用法
2020/06/10 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
幼师自荐信
2013/10/26 职场文书
财务会计专业推荐信
2013/11/30 职场文书
2014大学班主任工作总结
2014/11/08 职场文书