PHP实现的DES加密解密实例代码


Posted in PHP onApril 06, 2016

本文实例讲述了PHP实现的DES加密解密实例。分享给大家供大家参考,具体如下:

<?php
$key = 'very important data';
function jiami($key, $str)
{
  /* Open module, and create IV */
  $td = mcrypt_module_open('des', '', 'ecb', '');
  //$td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, '');
  //$td = mcrypt_module_open('des', '', 'cbc', '');
  $key = substr($key, 0, mcrypt_enc_get_key_size($td));
  $iv_size = mcrypt_enc_get_iv_size($td);
  $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  /* Initialize encryption handle */
  if (mcrypt_generic_init($td, $key, $iv) === -1)
  {
    return FALSE;
  }
  /* Encrypt data */
  $c_t = mcrypt_generic($td, $str);
  /* Clean up */
  mcrypt_generic_deinit($td);
  mcrypt_module_close($td);
  return $c_t;
}
function jiemi($key, $str)
{
  /* Open module, and create IV */
  $td = mcrypt_module_open('des', '', 'ecb', '');
  //$td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, '');
  //$td = mcrypt_module_open('des', '', 'cbc', '');
  $key = substr($key, 0, mcrypt_enc_get_key_size($td));
  $iv_size = mcrypt_enc_get_iv_size($td);
  $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  /* Initialize encryption handle */
  if (mcrypt_generic_init($td, $key, $iv) === -1)
  {
    return FALSE;
  }
  /* Reinitialize buffers for decryption */
  $p_t = mdecrypt_generic($td, $str);
  /* Clean up */
  mcrypt_generic_deinit($td);
  mcrypt_module_close($td);
  return trim($p_t);
}
$str = 'hello world!';
echo 'key:' . $key . '<br>';
echo 'str:' . $str . '<br>';
$jiami = jiami($key, $str);
echo '加密:' . $jiami . '<br>';
file_put_contents('jiamiqian.txt', $str);
file_put_contents('jiamihou.txt', $jiami);
$jiemi = jiemi($key, $jiami);
echo '解密:' . $jiemi . '<br>';

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php SQL防注入代码集合
Apr 25 PHP
php set_time_limit(0) 设置程序执行时间的函数
May 26 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 PHP
xml在joomla表单中的应用详解分享
Jul 19 PHP
php广告加载类用法实例
Sep 23 PHP
PHP实现无限极分类图文教程
Nov 25 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
php防止用户重复提交表单
Nov 02 PHP
PHP中的数组处理函数实例总结
Jan 09 PHP
YII框架实现自定义第三方扩展操作示例
Apr 26 PHP
PHP批斗大会之缺失的异常详解
Jul 09 PHP
php报错502badgateway解决方法
Oct 11 PHP
php使用正则验证中文
Apr 06 #PHP
php HTML无刷新提交表单
Apr 05 #PHP
PHP如何使用Memcached
Apr 05 #PHP
初识PHP中的Swoole
Apr 05 #PHP
PHP中file_exists使用中遇到的问题小结
Apr 05 #PHP
PHP读取大文件的多种方法介绍
Apr 04 #PHP
PHP如何将XML转成数组
Apr 04 #PHP
You might like
手冲咖啡应该是现代精品咖啡店的必备选项吗?
2021/03/03 冲泡冲煮
PHP警告Cannot use a scalar value as an array的解决方法
2012/01/11 PHP
PHP实现C#山寨ArrayList的方法
2015/07/16 PHP
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
关于javascript模块加载技术的一些思考
2014/11/28 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
es6函数之尾调用优化实例分析
2020/04/25 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
python 多进程通信模块的简单实现
2014/02/20 Python
Python读取mp3中ID3信息的方法
2015/03/05 Python
python实现雨滴下落到地面效果
2018/06/21 Python
Python中super函数用法实例分析
2019/03/18 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
pycharm 安装JPype的教程
2019/08/08 Python
Python facenet进行人脸识别测试过程解析
2019/08/16 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
会计专业应届生求职信
2013/11/24 职场文书
工商企业管理实习自我鉴定
2013/12/04 职场文书
学习十八大报告感言
2014/02/28 职场文书
机关职员工作检讨书
2014/10/23 职场文书
Go语言并发编程 sync.Once
2021/10/16 Golang
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫