PHP实现加强版加密解密类实例


Posted in PHP onJuly 29, 2015

本文实例讲述了PHP实现加强版加密解密类。分享给大家供大家参考。具体如下:

<?php
class Ender{
  private $enkey;//加密解密用的密钥
  private $rep_char='#';
  //替换加密后的base64字符串中的=,因为=在有些场合是禁止使用的,
  //这里可以用一个允许的字符作为替换。
  //构造参数是密钥
  public function __construct($key=''){
    if(!$key){
      $this->enkey=$key;
    }
  }
  //设置密钥http://blog.ddian.cn
  public function set_key($key){
    $this->enkey=$key;
  }
  private function keyED($txt,$encrypt_key) 
  { 
  $encrypt_key = md5($encrypt_key); 
  $ctr=0; 
  $tmp = ""; 
  for ($i=0;$i<strlen($txt);$i++) 
  { 
  if ($ctr==strlen($encrypt_key)) $ctr=0; 
  $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1); 
  $ctr++; 
  } 
  return $tmp;
  }
  //加密字符串
  public function encrypt($txt,$key='') 
  {
  if(!$key){
    $key=$this->enkey;
  }
  srand((double)microtime()*1000000); 
  $encrypt_key = md5(rand(0,32000)); 
  $ctr=0; 
  $tmp = ""; 
  for ($i=0;$i<strlen($txt);$i++) 
  { 
  if ($ctr==strlen($encrypt_key)) $ctr=0; 
  $tmp.= substr($encrypt_key,$ctr,1) . 
  (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1)); 
  $ctr++; 
  }
  $r=base64_encode($this->keyED($tmp,$key));
  $r=str_replace('=',$this->rep_char,$r);
  return $r; 
  }
  //解密字符串
  public function decrypt($txt,$key='') 
  {
  $txt=str_replace($this->rep_char,'=',$txt);
  $txt=base64_decode($txt);
  if(!$key){
      $key=$this->enkey;
  }
  $txt = $this->keyED($txt,$key); 
  $tmp = ""; 
  for ($i=0;$i<strlen($txt);$i++) 
  { 
  $md5 = substr($txt,$i,1); 
  $i++; 
  $tmp.= (substr($txt,$i,1) ^ $md5); 
  } 
  return $tmp; 
  }
}

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP 单引号与双引号的区别
Nov 24 PHP
PHPThumb PHP 图片缩略图库
Mar 11 PHP
PHP 第二节 数据类型之数组
Apr 28 PHP
div li的多行多列 无刷新分页示例代码
Oct 16 PHP
php中Session的生成机制、回收机制和存储机制探究
Aug 19 PHP
VPS中使用LNMP安装WordPress教程
Dec 28 PHP
PHP中使用array函数新建一个数组
Nov 19 PHP
Symfony2安装的方法(2种方法)
Feb 04 PHP
PHP模板引擎Smarty自定义变量调解器用法
Apr 11 PHP
基于PHPexecl类生成复杂的报表表头示例
Oct 14 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 PHP
laravel返回统一格式错误码问题
Nov 04 PHP
PHP之密码加密的几种方式
Jul 29 #PHP
PHP实现仿Google分页效果的分页函数
Jul 29 #PHP
PHP如何将log信息写入服务器中的log文件
Jul 29 #PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 #PHP
php去掉文件前几行的方法
Jul 29 #PHP
PHP实现的简单网络硬盘
Jul 29 #PHP
PHP简单生成缩略图相册的方法
Jul 29 #PHP
You might like
PHP Error与Logging函数的深入理解
2013/06/03 PHP
php中的动态调用实例分析
2015/01/07 PHP
php使用正则表达式获取图片url的方法
2015/01/16 PHP
54个提高PHP程序运行效率的方法
2015/07/19 PHP
PHP微信公众号开发之微信红包实现方法分析
2017/07/14 PHP
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
JavaScript中URL编码函数代码
2011/01/11 Javascript
深入学习jQuery Validate表单验证
2016/01/18 Javascript
关于cookie的初识和运用(js和jq)
2016/04/07 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
JS中from 表单序列化提交的代码
2017/01/20 Javascript
jQuery实现的手风琴侧边菜单效果
2017/03/29 jQuery
使用AngularJS对表单提交内容进行验证的操作方法
2017/07/12 Javascript
js实现简单点赞操作
2020/03/17 Javascript
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
python实现矩阵打印
2019/03/02 Python
python assert的用处示例详解
2019/04/01 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
用python实现名片管理系统
2020/06/18 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
python中pyqtgraph知识点总结
2021/01/26 Python
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
介绍一下mysql的日期和时间函数
2013/03/28 面试题
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
入党自我鉴定范文
2013/10/04 职场文书
《长征》教学反思
2014/04/27 职场文书
小学生倡议书范文
2014/05/13 职场文书
万能检讨书2000字
2014/10/17 职场文书
2014年文秘工作总结
2014/11/25 职场文书
文化苦旅读书笔记
2015/06/29 职场文书
高一地理教学工作总结
2015/08/12 职场文书
Python可视化学习之seaborn调色盘
2022/02/24 Python
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技