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 26 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
处理单名多值表单的详解
Jun 08 PHP
PHP屏蔽过滤指定关键字的方法
Nov 03 PHP
浅谈PHP面向对象之访问者模式+组合模式
May 22 PHP
laravel如何开启跨域功能示例详解
Aug 31 PHP
详细解读php的命名空间(二)
Feb 21 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 PHP
php的优点总结 php有哪些优点
Jul 19 PHP
php实现对文件压缩简单的方法
Sep 29 PHP
PHP之多条件混合筛选功能的实现方法
Oct 09 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 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/02/15 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
js实现模拟计算器退格键删除文字效果的方法
2015/05/07 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
python局域网ip扫描示例分享
2014/04/03 Python
python定时器(Timer)用法简单实例
2015/06/04 Python
利用Python的Django框架生成PDF文件的教程
2015/07/22 Python
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
浅谈numpy库的常用基本操作方法
2018/01/09 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
企业内部培训方案
2014/02/04 职场文书
运动会广播稿诗歌版
2014/09/12 职场文书
如何写辞职书
2015/02/26 职场文书
元旦主持词开场白
2015/05/29 职场文书
党风廉政教育心得体会2016
2016/01/22 职场文书
Python多线程实用方法以及共享变量资源竞争问题
2022/04/12 Python
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android