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 相关文章推荐
如何在PHP中使用Oracle数据库(4)
Oct 09 PHP
php读取html并截取字符串的简单代码
Nov 30 PHP
php中error与exception的区别及应用
Jul 28 PHP
PHP中使用json数据格式定义字面量对象的方法
Aug 20 PHP
php关联数组快速排序的方法
Apr 17 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
thinkphp配置文件路径的实现方法
Aug 30 PHP
php curl常用的5个经典例子
Jan 20 PHP
php 常用的系统函数
Feb 07 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
Jul 24 PHP
php中try catch捕获异常实例详解
Aug 06 PHP
PHP fopen中文文件名乱码问题解决方案
Oct 28 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
yii数据库的查询方法
2015/12/28 PHP
PHP实现正则表达式分组捕获操作示例
2018/02/03 PHP
你真的了解JavaScript吗?
2007/02/24 Javascript
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
通过url查找a元素应用案例
2014/04/29 Javascript
DVA框架统一处理所有页面的loading状态
2017/08/25 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
koa2的中间件功能及应用示例
2020/03/05 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
JS原型对象操作实例分析
2020/06/06 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
python调用cmd复制文件代码分享
2013/12/27 Python
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
numpy中loadtxt 的用法详解
2018/08/03 Python
python爬取内容存入Excel实例
2019/02/20 Python
在SQLite-Python中实现返回、查询中文字段的方法
2019/07/17 Python
python 三元运算符使用解析
2019/09/16 Python
python处理RSTP视频流过程解析
2020/01/11 Python
pytorch实现线性拟合方式
2020/01/15 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
Keras 使用 Lambda层详解
2020/06/10 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
初中数学教学随笔
2015/08/15 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
创业计划书之养殖业
2019/10/11 职场文书
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL
详解PHP服务器如何在有限的资源里最大提升并发能力
2021/05/25 PHP
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP