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 相关文章推荐
同时提取多条新闻中的文本一例
Oct 09 PHP
UTF8编码内的繁简转换的PHP类
Jul 09 PHP
解析CodeIgniter自定义配置文件
Jun 18 PHP
检测codeigniter脚本消耗内存情况的方法
Mar 21 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
Apr 02 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
Apr 14 PHP
PHP常见错误提示含义解释(实用!值得收藏)
Apr 25 PHP
PHP实现适用于自定义的验证码类
Jun 15 PHP
PHP使用栈解决约瑟夫环问题算法示例
Aug 27 PHP
php xhprof使用实例详解
Apr 15 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 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
基于文本的搜索
2006/10/09 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
2017/04/27 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
关于跨站脚本攻击问题
2011/12/22 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
微信小程序倒计时功能实例代码
2018/07/17 Javascript
使用ECharts实现状态区间图
2018/10/25 Javascript
微信小程序后端(java)开发流程的详细步骤
2019/11/13 Javascript
javascript设计模式 ? 建造者模式原理与应用实例分析
2020/04/10 Javascript
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
python利用datetime模块计算时间差
2015/08/04 Python
python制作花瓣网美女图片爬虫
2015/10/28 Python
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
python实现画一颗树和一片森林
2018/06/25 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
Tensorflow累加的实现案例
2020/02/05 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
深入理解Python 多线程
2020/06/16 Python
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
世嘉游戏英国官方商店:SEGA Shop UK
2019/09/20 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
环保倡议书500字
2014/05/15 职场文书
自主招生自荐信范文
2015/03/04 职场文书
天气温馨提示语
2015/07/14 职场文书
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫