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通过数组实现多条件查询实现方法(字符串分割)
May 06 PHP
php防止站外远程提交表单的方法
Oct 20 PHP
php目录遍历函数opendir用法实例
Nov 20 PHP
php微信公众开发之获取周边酒店信息的方法
Dec 22 PHP
PHP开启opcache提升代码性能
Apr 26 PHP
php实现点击可刷新验证码
Nov 07 PHP
对比分析php中Cookie与Session的异同
Feb 19 PHP
PHP访问数据库集群的方法小结
Mar 14 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
php使用curl通过代理获取数据的实现方法
May 16 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
Jun 11 PHP
PHP命名空间与自动加载类详解
Sep 04 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中操作ini配置文件的方法
2013/04/25 PHP
关于初学PHP时的知识积累总结
2013/06/07 PHP
php实现文本数据导入SQL SERVER
2015/05/17 PHP
详解HTTP Cookie状态管理机制
2016/01/14 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
phpstudy的php版本自由修改的方法
2017/10/18 PHP
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
JQUERY表单暂存功能插件分享
2016/02/23 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
2016/05/30 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
vue根据值给予不同class的实例
2018/09/29 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
2019/04/26 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
python Django模板的使用方法
2016/01/14 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
2020/09/03 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
浅析python实现动态规划背包问题
2020/12/31 Python
python 数据类型强制转换的总结
2021/01/25 Python
给同事的道歉信
2014/01/11 职场文书
毕业寄语大全
2014/04/09 职场文书
民主生活会发言材料
2014/10/20 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
酒店财务总监岗位职责
2015/04/03 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫