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 相关文章推荐
oracle资料库函式库
Oct 09 PHP
php下尝试使用GraphicsMagick的缩略图功能
Jan 01 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
Jun 24 PHP
解析PHP对现有搜索引擎的调用
Jun 25 PHP
php下获取http状态的实现代码
May 09 PHP
一张表搞清楚php is_null、empty、isset的区别
Jul 07 PHP
简单介绍PHP非阻塞模式
Mar 03 PHP
php+flash+jQuery多图片上传源码分享
Jul 27 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
php命令行写shell实例详解
Jul 19 PHP
php反射学习之不用new方法实例化类操作示例
Jun 14 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
使用php4加速网络传输
2006/10/09 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
php封装一个异常的处理类
2017/06/08 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
javascript基础知识讲解
2017/01/11 Javascript
angular 动态组件类型详解(四种组件类型)
2017/02/22 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
Python中的zip函数使用示例
2015/01/29 Python
Python自动调用IE打开某个网站的方法
2015/06/03 Python
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
亚洲独特体验旅游专家:eOasia
2018/08/15 全球购物
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
城建学院毕业生自荐信
2014/01/31 职场文书
银行竞聘演讲稿范文
2014/04/23 职场文书
公务员检讨书
2014/11/01 职场文书
电影小兵张嘎观后感
2015/06/03 职场文书
MySQL优化及索引解析
2022/03/17 MySQL
数据设计之权限的实现
2022/08/05 MySQL