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 相关文章推荐
动态网站web开发 PHP、ASP还是ASP.NET
Oct 09 PHP
计数器详细设计
Oct 09 PHP
PHP下MAIL的另一解决方案
Oct 09 PHP
JS实现php的伪分页
May 25 PHP
PHP入门学习笔记之一
Oct 12 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
Jul 12 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
Thinkphp框架开发移动端接口(1)
Aug 18 PHP
利用ajax和PHP实现简单的流程管理
Mar 23 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
Aug 02 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
PHP创建XML接口示例
Jul 04 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文本数据库的搜索方法
2006/10/09 PHP
PHP实现分页的一个示例
2006/10/09 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
node.js cookie-parser 中间件介绍
2016/06/06 Javascript
JS前向后瞻正则表达式定义与用法示例
2016/12/27 Javascript
fullPage.js和CSS3实现全屏滚动效果
2017/05/05 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
详解Vue文档中几个易忽视部分的剖析
2018/03/24 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
python中文乱码的解决方法
2013/11/04 Python
python使用urlparse分析网址中域名的方法
2015/04/15 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
2018/04/28 Python
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
python 获取字符串MD5值方法
2018/05/29 Python
Python二进制串转换为通用字符串的方法
2018/07/23 Python
python opencv 批量改变图片的尺寸大小的方法
2019/06/28 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
分布式全文检索引擎ElasticSearch原理及使用实例
2020/11/14 Python
python tkinter实现连连看游戏
2020/11/16 Python
CSS3 简写animation
2012/05/10 HTML / CSS
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
学习党的群众路线剖析材料
2014/10/09 职场文书
督导岗位职责范本
2015/04/10 职场文书
vue3语法糖内的defineProps及defineEmits
2022/04/14 Vue.js
vscode内网访问服务器的方法
2022/06/28 Servers