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之第八天
Oct 09 PHP
php数组去重的函数代码
Feb 03 PHP
PHP字符串长度计算 - strlen()函数使用介绍
Oct 15 PHP
php加密解密函数authcode的用法详细解析
Oct 28 PHP
php定义数组和使用示例(php数组的定义方法)
Mar 29 PHP
PHP实现数组递归转义的方法
Aug 28 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
Nov 28 PHP
ThinkPHP 404页面的设置方法
Jan 14 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
PHP生成加减算法方式的验证码实例
Mar 12 PHP
php workerman定时任务的实现代码
Dec 23 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+MYSQL中文乱码问题
2015/07/01 PHP
php实现网页端验证码功能
2017/07/11 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
IE的fireEvent方法概述及应用
2013/02/22 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
js比较日期大小的方法
2015/05/12 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
移动端Ionic App 资讯上下循环滚动的实现代码(跑马灯效果)
2017/08/29 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
jQuery实现动态向上滚动
2020/12/21 jQuery
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
Python实现基本线性数据结构
2016/08/22 Python
python 重定向获取真实url的方法
2018/05/11 Python
Python判断telnet通不通的实例
2019/01/26 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
2020/04/26 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
浅谈CSS3 box-sizing 属性 有趣的盒模型
2019/04/02 HTML / CSS
意大利单身交友网站:Meetic
2020/07/12 全球购物
介绍一下游标
2012/01/10 面试题
公司口号大全
2014/06/11 职场文书
追讨欠款律师函
2015/06/24 职场文书
小学语文教学随笔
2015/08/14 职场文书
医务人员岗前培训心得体会
2016/01/08 职场文书
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis
Linux7.6二进制安装Mysql8.0.27详细操作步骤
2021/11/27 MySQL
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技