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 相关文章推荐
NO3第三帝国留言簿制作过程
Oct 09 PHP
用php的ob_start来生成静态页面的方法分析
Mar 09 PHP
php读取excel文件的简单实例
Aug 26 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
Dec 18 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
Feb 02 PHP
php类常量用法实例分析
Jul 09 PHP
PHP实现补齐关闭的HTML标签
Mar 22 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
Jan 20 PHP
Laravel中如何增加自定义全局函数详解
May 09 PHP
详解将数据从Laravel传送到vue的四种方式
Oct 16 PHP
php上传后台无法收到数据解决方法
Oct 28 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
Mar 09 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代码
2008/04/09 PHP
10个简化PHP开发的工具
2014/12/25 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
使用jQuery.fn自定义jQuery翻页插件
2013/01/20 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
深入理解Javascript动态方法调用与参数修改的问题
2013/12/10 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
JS获取input file绝对路径的方法(推荐)
2016/08/02 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
2016/09/19 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
jQuery模拟实现的select点击选择效果【附demo源码下载】
2016/11/09 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
ansible作为python模块库使用的方法实例
2017/01/17 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
python 实现一个图形界面的汇率计算器
2020/11/09 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
跟单文员的岗位职责
2013/11/14 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
用Python将库打包发布到pypi
2021/04/13 Python
Go语言基础map用法及示例详解
2021/11/17 Golang