php结合md5的加密解密算法实例


Posted in PHP onSeptember 30, 2016

本文实例讲述了php结合md5的加密解密算法。分享给大家供大家参考,具体如下:

<?php
/*
* Created on 2016-9-30
*
*/
function encrypt($data, $key)
{
 $key = md5($key);
  $x = 0;
  $len = strlen($data);
  $l = strlen($key);
  for ($i = 0; $i < $len; $i++)
  {
    if ($x == $l)
    {
     $x = 0;
    }
    $char .= $key{$x};
    $x++;
  }
  for ($i = 0; $i < $len; $i++)
  {
    $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);
  }
  return base64_encode($str);
}
function decrypt($data, $key)
{
 $key = md5($key);
  $x = 0;
  $data = base64_decode($data);
  $len = strlen($data);
  $l = strlen($key);
  for ($i = 0; $i < $len; $i++)
  {
    if ($x == $l)
    {
     $x = 0;
    }
    $char .= substr($key, $x, 1);
    $x++;
  }
  for ($i = 0; $i < $len; $i++)
  {
    if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1)))
    {
      $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
    }
    else
    {
      $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
    }
  }
  return $str;
}
$data = '三水点靠木3water.com'; // 被加密信息
$data=iconv("gbk","utf-8",$data);
$key = '3water.com';   // 密钥
$encrypt = encrypt($data, $key);
$decrypt = decrypt($encrypt, $key);
echo $encrypt, "<br/>", $decrypt;
?>

运行结果如下:

TrXMTM8SFB3DGhTr2qeuYqOXZmpmn8mo
三水点靠木3water.com

PHP 相关文章推荐
MYSQL数据库初学者使用指南
Nov 16 PHP
php代码收集表单内容并写入文件的代码
Jan 29 PHP
探讨:parse url解析URL,返回其组成部分
Jun 14 PHP
php实现兼容2038年后Unix时间戳转换函数
Mar 18 PHP
PHP 读取文本文件内容并分页显示
Jan 02 PHP
PHP编程基本语法快速入门手册
Jan 07 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
Feb 26 PHP
关于PHP中Session文件过多的问题及session文件保存位置
Mar 17 PHP
PHP addcslashes()函数讲解
Feb 03 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
Jan 25 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 PHP
基于php解决json_encode中文UNICODE转码问题
Nov 10 PHP
PHP页面输出时js设置input框的选中值
Sep 30 #PHP
PHP页面输出搜索后跳转下一页的处理方法
Sep 30 #PHP
php实现基于openssl的加密解密方法
Sep 30 #PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 #PHP
php通过执行CutyCapt命令实现网页截图的方法
Sep 30 #PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
Sep 30 #PHP
利用PHP生成静态html页面的原理
Sep 30 #PHP
You might like
PHP实现时间轴函数代码
2011/10/08 PHP
PHP输入流php://input实例讲解
2015/12/22 PHP
PHPTree――php快速生成无限级分类
2018/03/30 PHP
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
2015/03/04 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
jquery心形点赞关注效果的简单实现
2016/11/14 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
js 计算图片内点个数的示例代码
2019/04/04 Javascript
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
[02:56]DOTA2亚洲邀请赛 VG出场战队巡礼
2015/02/07 DOTA
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
python获取糗百图片代码实例
2013/12/18 Python
Python3基础之list列表实例解析
2014/08/13 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
全网最全python库selenium自动化使用详细教程
2021/01/12 Python
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
厉行勤俭节约倡议书
2014/05/16 职场文书
工程项目经理任命书
2014/06/05 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
高三英语教学计划
2015/01/23 职场文书
事业单位聘任报告
2015/03/02 职场文书
创业计划书之青年旅馆
2019/09/23 职场文书