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 相关文章推荐
一个多文件上传的例子(原创)
Oct 09 PHP
PHP中基本符号及使用方法
Mar 23 PHP
php 上传功能实例代码
Apr 13 PHP
用穿越火线快速入门php面向对象
Feb 22 PHP
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
Jul 02 PHP
php约瑟夫问题解决关于处死犯人的算法
Mar 23 PHP
php实现无限级分类(递归方法)
Aug 06 PHP
zend framework重定向方法小结
May 28 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
Dec 06 PHP
Ajax+PHP实现的删除数据功能示例
Feb 12 PHP
PHP实现的文件浏览器功能简单示例
Sep 12 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 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实现水仙花数示例分享
2014/04/03 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
js中的this关键字详解
2013/09/25 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
Angular2+如何去除url中的#号详解
2017/12/20 Javascript
vue的全局变量和全局拦截请求器的示例代码
2018/09/13 Javascript
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
layui的select联动实现代码
2019/09/28 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
Javascript表单序列化原理及实现代码详解
2020/10/30 Javascript
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
Python Mysql自动备份脚本
2008/07/14 Python
Python(Django)项目与Apache的管理交互的方法
2018/05/16 Python
python顺序执行多个py文件的方法
2019/06/29 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
Django学习之文件上传与下载
2019/10/06 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
卫校毕业生自我鉴定
2013/10/31 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
外出考察学习心得体会
2016/01/18 职场文书
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技