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 相关文章推荐
frename PHP 灵活文件命名函数 frename
Sep 09 PHP
php简单的会话类代码
Aug 08 PHP
PHP 无限分类三种方式 非函数的递归调用!
Aug 26 PHP
与文件上传有关的php配置参数总结
Jun 14 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
PHP登录验证码的实现与使用方法
Jul 07 PHP
PHP入门教程之表单与验证实例详解
Sep 11 PHP
php+webSoket实现聊天室示例代码(附源码)
Feb 17 PHP
PHP常用算法和数据结构示例(必看篇)
Mar 15 PHP
php变量与JS变量实现不通过跳转直接交互的方法
Aug 25 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 PHP
PHP copy函数使用案例代码解析
Sep 01 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为SHOPEX增加日志功能代码
2010/07/02 PHP
php教程之phpize使用方法
2014/02/12 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
jquery实现加载进度条提示效果
2015/11/23 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
JavaScript实现异步图像上传功能
2018/07/12 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
使用Python编写一个模仿CPU工作的程序
2015/04/16 Python
详解Django中的form库的使用
2015/07/18 Python
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
Python科学计算之Pandas详解
2017/01/15 Python
Python爬虫实现百度图片自动下载
2018/02/04 Python
Python实现线性插值和三次样条插值的示例代码
2019/11/13 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
80年代复古T恤:TruffleShuffle
2018/07/02 全球购物
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
上班离岗检讨书
2014/01/27 职场文书
春节联欢会策划方案
2014/05/16 职场文书
电气自动化求职信
2014/06/24 职场文书
教师工作决心书
2015/02/04 职场文书
承诺书范本大全
2015/05/04 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
iPhone13将有八大升级
2021/04/15 数码科技