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+DBM的同学录程序(4)
Oct 09 PHP
实用函数10
Nov 08 PHP
Cannot modify header information错误解决方法
Oct 08 PHP
使用php get_headers 判断URL是否有效的解决办法
Apr 27 PHP
php接口和抽象类使用示例详解
Mar 02 PHP
codeigniter自带数据库类使用方法说明
Mar 25 PHP
PHP中的output_buffering详细介绍
Sep 27 PHP
PHP使用ODBC连接数据库的方法
Jul 18 PHP
教大家制作简单的php日历
Nov 17 PHP
PHP下的浮点运算不准的解决方法
Oct 27 PHP
老生常谈文本文件和二进制文件的区别
Feb 27 PHP
微信小程序结合ThinkPHP5授权登陆后获取手机号
Nov 23 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
有关 PHP 和 MySQL 时区的一点总结
2008/03/26 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
php上传文件并存储到mysql数据库的方法
2015/03/16 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
基于Vue的商品主图放大镜方案详解
2019/09/19 Javascript
vue+element tabs选项卡分页效果
2020/06/29 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
Angular利用HTTP POST下载流文件的步骤记录
2020/07/26 Javascript
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
python实现excel读写数据
2021/03/02 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
numpy基础教程之np.linalg
2019/02/12 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
Python如何绘制日历图和热力图
2020/08/07 Python
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
2015/04/24 HTML / CSS
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
物流管理专业自荐信
2014/06/23 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
2015年基层党建工作总结
2015/05/14 职场文书
2015年除四害工作总结
2015/07/23 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python
python迷宫问题深度优先遍历实例
2021/06/20 Python