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 相关文章推荐
桌面中心(二)数据库写入
Oct 09 PHP
Discuz 模板引擎的封装类代码
Jul 18 PHP
php 字符转义 注意事项
May 27 PHP
PHP 程序授权验证开发思路
Jul 09 PHP
PHP 循环列出目录内容的函数代码
May 26 PHP
php获取服务器信息的实现代码
Feb 04 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
May 06 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 PHP
如何在Laravel之外使用illuminate组件详解
Sep 20 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
关于手调机和数调机的选择
2021/03/02 无线电
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
2015/12/22 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
php反射学习之依赖注入示例
2019/06/14 PHP
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
JavaScript中利用各种循环进行遍历的方式总结
2015/11/10 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
详解Angular Reactive Form 表单验证
2017/07/06 Javascript
老生常谈js数据类型
2017/08/03 Javascript
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
ES6中定义类和对象的方法示例
2019/07/31 Javascript
Python中的作用域规则详解
2015/01/30 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
2019/07/06 Python
Python 点击指定位置验证码破解的实现代码
2019/09/11 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
物业保安主管岗位职责
2013/12/25 职场文书
竞选大队长演讲稿
2014/04/29 职场文书
诚信承诺书模板
2014/05/26 职场文书
手术室护士个人总结
2015/02/13 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android
redis sentinel监控高可用集群实现的配置步骤
2022/04/01 Redis