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 无限极分类
Mar 27 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
Jun 19 PHP
微信公众平台实现获取用户OpenID的方法
Apr 15 PHP
php常用表单验证类用法实例
Jun 18 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
Nov 09 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
PHP下的浮点运算不准的解决方法
Oct 27 PHP
PHP实现电商订单自动确认收货redis队列
May 17 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
php微信开发之谷歌测距
Jun 14 PHP
php无限极分类实现方法分析
Jul 04 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 01 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下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
用php或asp创建网页桌面快捷方式的代码
2010/03/23 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
PHP引用返回用法示例
2016/05/28 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
javascript自执行函数
2017/02/10 Javascript
jquery实现点击弹出对话框
2020/02/08 jQuery
深入浅析JavaScript中的in关键字和for-in循环
2020/04/20 Javascript
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
windows下添加Python环境变量的方法汇总
2018/05/14 Python
python 列表降维的实例讲解
2018/06/28 Python
python实现抽奖小程序
2020/04/15 Python
python datetime中strptime用法详解
2019/08/29 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
软件测试面试题
2015/10/21 面试题
销售人员自我评价怎么写
2013/09/19 职场文书
档案管理员岗位职责
2013/12/01 职场文书
作文评语大全
2014/04/23 职场文书
司机工作自我鉴定
2014/09/19 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
结婚典礼主持词
2015/06/29 职场文书
感恩教育主题班会
2015/08/12 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书
golang中字符串MD5生成方式总结
2021/07/04 Golang
MySQL修炼之联结与集合浅析
2021/10/05 MySQL
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python