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 相关文章推荐
PHP 编写的 25个游戏脚本
May 11 PHP
php 计算两个时间戳相隔的时间的函数(小时)
Dec 18 PHP
PHP查询MySQL大量数据的时候内存占用分析
Jul 22 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
php实现检查文章是否被百度收录
Jan 27 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
Dec 18 PHP
深入理解PHP之OpCode原理详解
Jun 01 PHP
php flush无效,IIS7下php实时输出的方法
Aug 25 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
Dec 20 PHP
laravel执行php artisan migrate报错的解决方法
Oct 09 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 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
如何开始收听短波广播
2021/03/01 无线电
php项目中百度 UEditor 简单安装调试和调用
2015/07/15 PHP
php与python实现的线程池多线程爬虫功能示例
2016/10/12 PHP
flexigrid 参数说明
2010/11/23 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
js识别不同浏览器基于userAgent做判断
2014/07/29 Javascript
简单实现JavaScript图片切换效果
2016/11/28 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
JS中如何实现点击a标签返回页面顶部的问题
2017/01/19 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
Vue3+elementui plus创建项目的方法
2020/12/01 Vue.js
总结Python编程中三条常用的技巧
2015/05/11 Python
python绘制已知点的坐标的直线实例
2019/07/04 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
利用python实现汉诺塔游戏
2021/03/01 Python
会计岗位描述
2014/02/22 职场文书
护士优质服务演讲稿
2014/08/26 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL