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 相关文章推荐
PHP4实际应用经验篇(7)
Oct 09 PHP
php a simple smtp class
Nov 26 PHP
php 运行效率总结(提示程序速度)
Nov 26 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
Jan 17 PHP
php中hashtable实现示例分享
Feb 13 PHP
PHP判断表单复选框选中状态完整例子
Jun 24 PHP
PHP实现QQ空间自动回复说说的方法
Dec 02 PHP
PHP解压tar.gz格式文件的方法
Feb 14 PHP
yii2 数据库读写分离配置示例
Feb 10 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
Feb 17 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
Nov 06 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
Apr 27 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实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
jquery实现兼容浏览器的图片上传本地预览功能
2013/10/14 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
Angular的$http与$location
2016/12/26 Javascript
nodejs个人博客开发第六步 数据分页
2017/04/12 NodeJs
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
js实现unicode码字符串与utf8字节数据互转详解
2019/03/21 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
浅谈Vue中render中的h箭头函数
2019/11/07 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
使用SAE部署Python运行环境的教程
2015/05/05 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
基于Python中的yield表达式介绍
2019/11/19 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
python怎么判断模块安装完成
2020/06/19 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
Sql面试题
2013/03/20 面试题
酒店经理职责
2014/01/30 职场文书
群众路线党课主持词
2014/04/01 职场文书
关于flex 上下文中自动 margin的问题(完整例子)
2021/05/20 HTML / CSS