php的一个简单加密解密代码


Posted in PHP onJanuary 14, 2014
class SysCrypt{
 private $crypt_key='https://3water.com';//密钥
 public function __construct($crypt_key){
  $this->crypt_key=$crypt_key;
 }
 public function encrypt($txt){
  srand((double)microtime()*1000000);
  $encrypt_key=md5(rand(0,32000));
  $ctr=0;
  $tmp='';
  for($i=0;$i<strlen($txt);$i++){
   $ctr=$ctr==strlen($encrypt_key)?0:$ctr;
   $tmp.=$encrypt_key[$ctr].($txt[$i]^$encrypt_key[$ctr++]);
  }
  return base64_encode(self::__key($tmp,$this->crypt_key));
 }
 public function decrypt($txt){
  $txt=self::__key(base64_decode($txt),$this->crypt_key);
  $tmp='';
  for($i=0;$i<strlen($txt);$i++){
   $md5=$txt[$i];
   $tmp.=$txt[++$i]^$md5;
  }
  return $tmp;
 }
 private function __key($txt,$encrypt_key){
  $encrypt_key=md5($encrypt_key);
  $ctr=0;
  $tmp='';
  for($i=0;$i<strlen($txt);$i++){
   $ctr=$ctr==strlen($encrypt_key)?0:$ctr;
   $tmp.=$txt[$i]^$encrypt_key[$ctr++];
  }
  return $tmp;
 }
 public function __destruct(){
  $this->crypt_key=NULL;
 }
}

该类使用方法:

$sc=new SysCrypt('https://3water.com');
$text='yhm.1234@163.com';
$test1=$sc->encrypt($text);
echo '原文:',$text;
echo '<br />';
echo '密文:',$test1;
echo "<br/>";
echo '解密:',$sc->decrypt($test1);

输出结果类似:

原文:yhm.1234@163.com
密文:BS8DbFU6AioCNFFlVGZQMgRGBDUOYlEzBXoAZgo0Bjk=
解密:yhm.1234@163.com

PHP 相关文章推荐
仿Aspnetpager的一个PHP分页类代码 附源码下载
Oct 08 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
Nov 22 PHP
php通过记录IP来防止表单重复提交方法分析
Dec 16 PHP
php调用mysql存储过程实例分析
Dec 29 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
php 使用curl模拟登录人人(校内)网的简单实例
Jun 06 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
Jun 13 PHP
PHP树-不需要递归的实现方法
Jun 21 PHP
PHP获取客户端及服务器端IP的封装类
Jul 21 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 PHP
PHP对接阿里云虚拟号的实现(号码隐私保护)
Apr 06 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 #PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
Jan 14 #PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 #PHP
memcache命令启动参数中文解释
Jan 13 #PHP
PHP之APC缓存详细介绍 apc模块安装
Jan 13 #PHP
PHP curl 获取响应的状态码的方法
Jan 13 #PHP
PHP上传图片进行等比缩放可增加水印功能
Jan 13 #PHP
You might like
php中单个数据库字段多列显示(单字段分页、横向输出)
2014/07/28 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
juqery 学习之三 选择器 可见性 元素属性
2010/11/25 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
js触发asp.net的Button的Onclick事件应用
2013/02/02 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
可插入图片的TEXT文本框
2013/12/27 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
jQuery验证插件 Validate详解
2014/11/20 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
微信小程序 支付功能(前端)的实现
2017/05/24 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
vue中appear的用法
2017/08/17 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
vue生命周期的探索
2019/04/03 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
vue使用lodop打印控件实现浏览器兼容打印的方法
2021/02/07 Vue.js
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
连接Python程序与MySQL的教程
2015/04/29 Python
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
Python基础学习之常见的内建函数整理
2017/09/06 Python
python实战之实现excel读取、统计、写入的示例讲解
2018/05/02 Python
Python之列表的插入&amp;替换修改方法
2018/06/28 Python
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
高档奢华时装在线目的地:FORWARD by elyse walker
2017/10/16 全球购物
初中中等生评语
2014/12/29 职场文书
学校就业保障协议书
2019/06/24 职场文书