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 什么是PEAR?(第二篇)
Mar 19 PHP
php 魔术方法使用说明
Oct 20 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
Oct 23 PHP
php中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
php二维数组排序详解
Nov 06 PHP
PHP获取一年中每个星期的开始和结束日期的方法
Feb 12 PHP
php从给定url获取文件扩展名的方法
Mar 14 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
PHP实现的统计数据功能详解
Dec 06 PHP
PHP设计模式之适配器模式定义与用法详解
Apr 03 PHP
php获得刚插入数据的id 的几种方法总结
May 31 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
Apr 27 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 高手之路(一)
2006/10/09 PHP
PHP 批量更新网页内容实现代码
2010/01/05 PHP
JavaScript的Cookies
2008/01/16 Javascript
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
Javascript事件实例详解
2013/11/06 Javascript
jquery禁用右键示例
2014/04/28 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
深入研究React中setState源码
2017/11/17 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
python表格存取的方法
2018/03/07 Python
django启动uwsgi报错的解决方法
2018/04/08 Python
python实现飞机大战微信小游戏
2020/03/21 Python
Python实现FTP文件传输的实例
2019/07/07 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
2020/04/15 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
美术国培研修感言
2014/02/12 职场文书
父亲的菜园教学反思
2014/02/13 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
个人融资协议书
2014/10/02 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
工作失职检讨书范文
2015/05/05 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
初中政教处工作总结
2015/08/12 职场文书
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技