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 如何向 MySQL 发送数据
Oct 09 PHP
NOD32 v2.70.32 简体中文封装版 提供下载了
Feb 27 PHP
PHP 常用函数库和一些实用小技巧
Jan 01 PHP
那些年一起学习的PHP(二)
Mar 21 PHP
php中将字符串转为HTML的实体引用的一个类
Feb 03 PHP
php 批量添加多行文本框textarea一行一个
Jun 03 PHP
PHP实现从远程下载文件的方法
Mar 12 PHP
PHP使用Pear发送邮件(Windows环境)
Jan 05 PHP
PHP之图片上传类实例代码(加了缩略图)
Jun 30 PHP
php的PDO事务处理机制实例分析
Feb 16 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
Mar 31 PHP
实例讲解PHP验证邮箱是否合格
Jan 28 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 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
php ci框架验证码实例分析
2013/06/26 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
PHP8.0新功能之Match表达式的使用
2020/07/19 PHP
jQuery 性能优化指南(2)
2009/05/21 Javascript
JQuery 选项卡效果(JS与HTML的分离)
2010/04/01 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
JavaScript实现的图像模糊算法代码分享
2014/04/22 Javascript
jQuery实现图片走马灯效果的原理分析
2016/01/16 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
使用Python的PEAK来适配协议的教程
2015/04/14 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
Python常见的pandas用法demo示例
2019/03/16 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
2019/05/10 Python
python网络编程 使用UDP、TCP协议收发信息详解
2019/08/29 Python
python滑块验证码的破解实现
2019/11/10 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
PHP面试题及答案一
2012/06/18 面试题
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
租赁协议书范本
2014/04/22 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
2014年重阳节活动策划方案书
2014/09/16 职场文书
公民授权委托书范本
2014/09/17 职场文书
2015年党员公开承诺书范文
2015/01/22 职场文书
行政答辩状范文
2015/05/21 职场文书
考研经验交流会策划书
2015/11/02 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery