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设置编码格式的方法
Mar 05 PHP
php获取CSS文件中图片地址并下载到本地的方法
Dec 02 PHP
php单例模式示例分享
Feb 12 PHP
php计算到指定日期还有多少天的方法
Apr 14 PHP
PHP中使用foreach()遍历二维数组的简单实例
Jun 13 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
Jul 06 PHP
apache php mysql开发环境安装教程
Jul 28 PHP
使用php自动备份数据库表的实现方法
Jul 28 PHP
PHP实现负载均衡下的session共用功能
Apr 17 PHP
php判断目录存在的简单方法
Sep 26 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 PHP
PHP延迟静态绑定使用方法实例解析
Sep 05 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去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2021/03/09 PHP
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
懒加载实现的分页&amp;&amp;网站footer自适应
2016/12/21 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
Python入门必须知道的11个知识点
2018/03/21 Python
Python地图绘制实操详解
2019/03/04 Python
pandas.cut具体使用总结
2019/06/24 Python
pyqt5 使用cv2 显示图片,摄像头的实例
2019/06/27 Python
python处理document文档保留原样式
2019/09/23 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
处理textarea中的换行和空格
2019/12/12 HTML / CSS
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
小学生思想品德评语
2014/12/31 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
未发现nvidia显卡怎么办?Win11系统中未检测到nvidia显卡解决教程
2022/04/08 数码科技