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之第十天
Oct 09 PHP
在 PHP 中使用随机数的三个步骤
Oct 09 PHP
提高PHP编程效率 引入缓存机制提升性能
Feb 15 PHP
PHP对象转换为数组函数(递归方法)
Feb 04 PHP
PHP base64编码后解码乱码的解决办法
Jun 19 PHP
php中使用PHPExcel读写excel(xls)文件的方法
Sep 15 PHP
学习php设计模式 php实现单例模式(singleton)
Dec 07 PHP
PHP实现QQ登录实例代码
Jan 14 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
Feb 15 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 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
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
php 删除cookie方法详解
2014/12/01 PHP
PHP基于文件存储实现缓存的方法
2015/07/20 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
关于document.cookie的使用javascript
2010/10/29 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
深入浅析JavaScript中数据共享和数据传递
2016/04/25 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
2020/11/12 Javascript
[38:23]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第二场 11.01
2020/11/02 DOTA
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
Python计算程序运行时间的方法
2014/12/13 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
对Python中内置异常层次结构详解
2018/10/18 Python
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
全球最大的服务市场:Fiverr
2017/01/03 全球购物
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
财会自我鉴定范文
2013/12/27 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书
幼师个人总结范文
2015/02/28 职场文书
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL