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文件上传原理简单分析
May 29 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
深入理解php的MySQL连接类
Jun 07 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
Sep 26 PHP
PHP微框架Dispatch简介
Jun 12 PHP
浅析Yii2 GridView实现下拉搜索教程
Apr 22 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
May 20 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
Jun 30 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
php foreach如何跳出两层循环(详解)
Nov 05 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
Mar 02 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
Oct 21 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
强烈推荐:php.ini中文版(2)
2006/10/09 PHP
一个简单的PHP验证码实现代码
2014/05/10 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
2014/12/01 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
jQuery取得select选择的文本与值的示例
2013/12/09 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
javascript制作sql转换为stringBuffer的小工具
2015/04/03 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
2017/01/06 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
Vue的属性、方法、生命周期实例代码详解
2019/09/17 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
Python网络编程之TCP套接字简单用法示例
2018/04/09 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
Python实现FLV视频拼接功能
2020/01/21 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
css3新增颜色表示方式分享
2014/04/15 HTML / CSS
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
路政管理专业推荐信
2013/11/11 职场文书
单位活动策划方案
2014/08/17 职场文书
我们的节日春节活动方案
2014/08/22 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
新闻稿怎么写
2015/07/18 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
JS封装cavans多种滤镜组件
2022/02/15 Javascript