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 相关文章推荐
将数组写入txt文件 var_export
Apr 21 PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
Jun 16 PHP
ThinkPHP模板引擎之导入资源文件方法详解
Jun 18 PHP
php时间戳格式化显示友好的时间函数分享
Oct 21 PHP
PHP原生函数一定好吗?
Dec 08 PHP
php简单实现多字节字符串翻转的方法
Mar 31 PHP
thinkPHP简单遍历数组方法分析
May 16 PHP
php实现登录tplink WR882N获取IP和重启的方法
Jul 20 PHP
php 的反射详解及示例代码
Aug 25 PHP
php使用环形链表解决约瑟夫问题完整示例
Aug 07 PHP
PHP基于ip2long实现IP转换整形
Dec 11 PHP
PHP中SESSION过期设置
Mar 09 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目录管理函数小结
2008/09/10 PHP
PHP图片上传代码
2013/11/04 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
JS重要知识点小结
2011/11/06 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
简单实现js页面切换功能
2021/01/10 Javascript
原生js获取元素样式的简单方法
2016/08/06 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
2021/02/05 Javascript
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
Python Queue模块详细介绍及实例
2016/12/27 Python
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
python 实现二维字典的键值合并等函数
2019/12/06 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
Python HTMLTestRunner可视化报告实现过程解析
2020/04/10 Python
基于python requests selenium爬取excel vba过程解析
2020/08/12 Python
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
自我评价的写作规则
2014/01/06 职场文书
餐厅经理岗位职责和岗位目标
2014/02/13 职场文书
活动总结格式
2014/08/30 职场文书
关于运动会的广播稿
2015/08/19 职场文书
家庭教育教师培训学习体会
2016/01/14 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
redis 限制内存使用大小的实现
2021/05/08 Redis
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python