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获取类中常量,属性,及方法列表的方法
Apr 09 PHP
php修改时间格式的代码
May 29 PHP
PHP中用hash实现的数组
Jul 17 PHP
php中模拟POST传递数据的两种方法分享
Sep 16 PHP
PHP常用技巧总结(附函数代码)
Feb 04 PHP
ThinkPHP3.1新特性之内容解析输出详解
Jun 19 PHP
php使用curl出现Expect:100-continue解决方法
Mar 03 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
Oct 10 PHP
Yii2创建表单(ActiveForm)方法详解
Jul 23 PHP
PHP实现文件下载【实例分享】
Apr 28 PHP
iis 7下安装laravel 5.4环境的方法教程
Jun 14 PHP
thinkphp5实现微信扫码支付
Dec 23 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初学者写及时补给skype用户充话费的小程序
2008/11/02 PHP
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
探讨php define()函数及defined()函数使用详解
2013/06/09 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
2019/01/23 PHP
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
JavaScript中的Math 使用介绍
2014/04/21 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
2016/05/20 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
Node.js中console.log()输出彩色字体的方法示例
2019/12/01 Javascript
JS写滑稽笑脸运动效果
2020/05/28 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
[51:28]EG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/16 DOTA
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
通过Python 获取Android设备信息的轻量级框架
2017/12/18 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
python SOCKET编程基础入门
2021/02/27 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
物理系毕业生自荐信
2013/11/01 职场文书
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
行政专员工作职责
2013/12/22 职场文书
24岁生日感言
2014/01/13 职场文书
2014年人事科工作总结
2014/11/19 职场文书
新员工入职欢迎词
2015/01/23 职场文书
MySQL Server 层四个日志
2022/03/31 MySQL