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 相关文章推荐
删除无限级目录与文件代码共享
Jul 12 PHP
使用apache模块rewrite_module (转)
Feb 14 PHP
php简单静态页生成过程
Mar 27 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
第四章 php数学运算
Dec 30 PHP
php实现快速排序的三种方法分享
Mar 12 PHP
PHP 读取和编写 XML
Nov 19 PHP
php备份数据库类分享
Apr 14 PHP
ThinkPHP路由机制简介
Mar 23 PHP
PHP strip_tags保留多个HTML标签的方法
May 22 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
php-fpm添加service服务的例子
Apr 27 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获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
PHP中$_SERVER使用说明
2015/07/05 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
js玩一玩WSH吧
2007/02/23 Javascript
Document 对象的常用方法
2009/07/31 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
2014/04/10 Javascript
jQuery实现表单提交时判断的方法
2014/12/13 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
js中数组的常用方法小结
2016/12/30 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
微信小程序实现上传图片裁剪图片过程解析
2019/08/22 Javascript
[01:28:43]2014 DOTA2华西杯精英邀请赛5 24 DK VS CIS
2014/05/25 DOTA
python 基础教程之Map使用方法
2017/01/17 Python
Python AES加密实例解析
2018/01/18 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
新手入门学习python Numpy基础操作
2020/03/02 Python
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
中专生职业生涯规划书范文
2013/12/29 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
会计求职信怎么写
2015/03/20 职场文书
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android