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 相关文章推荐
Apache2 httpd.conf 中文版
Dec 06 PHP
从康盛产品(discuz)提取出来的模板类
Jun 28 PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
深入file_get_contents函数抓取内容失败的原因分析
Jun 25 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
Aug 10 PHP
CodeIgniter中实现泛域名解析
Jul 19 PHP
php基于PDO实现功能强大的MYSQL封装类实例
Feb 27 PHP
PHP的反射机制实例详解
Mar 29 PHP
PHP PDOStatement::fetchAll讲解
Jan 31 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
May 29 PHP
laravel实现上传图片的两种方式小结
Oct 12 PHP
laravel框架使用极光推送消息操作示例
Feb 15 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学习笔记 数组的常用函数
2011/06/13 PHP
Yii中表单用法实例详解
2016/01/05 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
JavaScript中的函数(二)
2015/12/23 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
jQuery基于正则表达式的表单验证功能示例
2017/01/21 Javascript
原生和jQuery的ajax用法详解
2017/01/23 Javascript
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
详解Vue路由History mode模式中页面无法渲染的原因及解决
2017/09/28 Javascript
微信小程序实现签到功能
2018/10/31 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
Python获取脚本所在目录的正确方法
2014/04/15 Python
实例说明Python中比较运算符的使用
2015/05/13 Python
python通过加号运算符操作列表的方法
2015/07/28 Python
python监控进程脚本
2018/04/12 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
windows下python安装小白入门教程
2018/09/18 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
2019/04/11 Python
Pycharm小白级简单使用教程
2020/01/08 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
秘鲁购物网站:Linio秘鲁
2017/04/07 全球购物
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
人事主管的岗位职责
2013/11/16 职场文书
超市创业计划书
2014/09/15 职场文书
平面设计师岗位职责
2014/09/18 职场文书
2014年文艺部工作总结
2014/11/17 职场文书
公司借款担保书
2015/09/22 职场文书
初中语文教师研修日志
2015/11/13 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
Nginx如何配置根据路径转发详解
2022/07/23 Servers