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 获取完整url地址
Dec 20 PHP
劣质的PHP代码简化
Feb 08 PHP
php将fileterms函数返回的结果变成可读的形式
Apr 21 PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
php 删除一个数组中的某个值.兼容多维数组!
Feb 18 PHP
PHP中如何调用webservice的实例参考
Apr 25 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
Jun 27 PHP
php上传文件常见问题总结
Feb 03 PHP
PHP学习笔记之php文件操作
Jun 03 PHP
Yii2中cookie用法示例分析
Jul 18 PHP
PHP实现权限管理功能示例
Sep 22 PHP
实例讲解PHP中使用命名空间
Jan 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 超链接 抓取实现代码
2009/06/29 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
PHP.vs.JAVA
2016/04/29 PHP
浅谈php中fopen不能创建中文文件名文件的问题
2017/02/06 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
PHP 实现缩略图
2021/03/09 PHP
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
简介JavaScript中Math.cos()余弦方法的使用
2015/06/15 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
ES6中Iterator与for..of..遍历用法分析
2017/03/31 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
2018/09/18 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
python通过yield实现数组全排列的方法
2015/03/18 Python
Python XlsxWriter模块Chart类用法实例分析
2019/03/11 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
使用python画社交网络图实例代码
2019/07/10 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
运行时异常与一般异常有何异同?
2014/01/05 面试题
学校司机岗位职责
2013/11/14 职场文书
关于读书的演讲稿
2014/05/07 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
调研汇报材料范文
2014/08/17 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
CSS link与@import的区别和用法解析
2023/05/07 HTML / CSS