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连接sql server 2005环境配置及问题解决
Aug 08 PHP
详解PHP匿名函数与注意事项
Mar 29 PHP
php利用header函数下载各种文件
Aug 24 PHP
Laravel5.1自定义500错误页面示例
Oct 09 PHP
thinkPHP统计排行与分页显示功能示例
Dec 02 PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
利用PHP获取汉字首字母并且分组排序详解
Oct 22 PHP
PHP的mysqli_stat()函数讲解
Jan 23 PHP
PHP addcslashes()函数讲解
Feb 03 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
Apr 09 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 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
PHP下对字符串的递增运算代码
2010/08/21 PHP
PHP使用正则表达式清除超链接文本
2013/11/12 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
2019/08/12 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
解决checkbox的attr(checked)一直为undefined问题
2014/06/16 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
Bootbox将后台JSON数据填充Form表单的实例代码
2018/09/10 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
python中os模块详解
2016/10/14 Python
python距离测量的方法
2018/03/06 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
Django工程的分层结构详解
2019/07/18 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
新三好学生主要事迹
2014/01/23 职场文书
《一件运动衫》教学反思
2014/02/19 职场文书
文艺晚会主持词
2014/03/24 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
2014预备党员批评与自我批评思想汇报
2014/09/20 职场文书
2014年实验室工作总结
2014/12/03 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
python 解决微分方程的操作(数值解法)
2021/05/26 Python
如何用python清洗文件中的数据
2021/06/18 Python
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js