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服务器实现多session并发运行
Oct 09 PHP
php 分页类 扩展代码
Jun 11 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
Aug 15 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
Jul 22 PHP
php+mysql实现无限分类实例详解
Jan 15 PHP
PHP中使用curl伪造IP的简单方法
Aug 07 PHP
Zend Framework教程之Resource Autoloading用法实例
Mar 08 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
May 19 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
Laravel实现短信注册的示例代码
May 29 PHP
Laravel框架在本地虚拟机快速安装的方法详解
Jun 11 PHP
php访问对象中的成员的实例方法
Nov 17 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_pconnect()函数使用介绍
2012/02/05 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
用 javascript 实现的点击复制代码
2007/03/24 Javascript
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
jQuery添加和删除输入文本框标签代码
2016/05/20 Javascript
JavaScript数组的定义及数字操作技巧
2016/06/06 Javascript
SelecT下拉框选中和取值的解决方法
2016/11/22 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
详解nodejs实现本地上传图片并预览功能(express4.0+)
2017/06/28 NodeJs
BootStrap的双日历时间控件使用
2017/07/25 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
微信小程序页面渲染实现方法
2019/11/06 Javascript
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
python简单获取数组元素个数的方法
2015/07/13 Python
python检索特定内容的文本文件实例
2018/06/05 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
Django实现内容缓存实例方法
2020/06/30 Python
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
践行党的群众路线心得体会
2014/11/05 职场文书
起诉书范文
2015/05/20 职场文书
2015企业年终工作总结范文
2015/05/27 职场文书
观看建国大业观后感
2015/06/01 职场文书
2015年小学财务工作总结
2015/07/20 职场文书
2016年教师节感言
2015/12/09 职场文书
高中语文教材(文学文化常识大全一)
2019/08/13 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android
SQL CASE 表达式的具体使用
2022/03/21 SQL Server