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连接函数implode与分割explode的深入解析
Jun 26 PHP
php实现对两个数组进行减法操作的方法
Apr 17 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
Jun 29 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
php 无限分类 树形数据格式化代码
Oct 11 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
微信封装的调用微信签名包的类库
Jun 08 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
PHP设计模式之委托模式定义与用法简单示例
Aug 13 PHP
PHP 获取客户端 IP 地址的方法实例代码
Nov 11 PHP
PHP PDOStatement::fetchAll讲解
Jan 31 PHP
用PHP做了一个领取优惠券活动的示例代码
Jul 05 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实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
php二维数组转成字符串示例
2014/02/17 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
如何重写Laravel异常处理类详解
2020/12/20 PHP
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
require.js的用法详解
2015/10/20 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
2016/06/24 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
BootstrapTable加载按钮功能实例代码详解
2017/09/22 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
2019/04/02 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
Python入门篇之条件、循环
2014/10/17 Python
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
python自动重试第三方包retrying模块的方法
2018/04/24 Python
python将视频转换为全字符视频
2019/04/26 Python
荷兰在线体育用品商店:Avantisport.nl
2018/07/04 全球购物
MyBag中文网:英国著名的时尚包袋电商零售网站
2020/07/31 全球购物
后备干部考察材料
2014/02/12 职场文书
工伤认定行政答辩状
2015/05/22 职场文书
病假证明模板
2015/06/19 职场文书
2019年预备党员的思想汇报:加深对党的认知
2019/09/25 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android