支持中文的php加密解密类代码


Posted in PHP onNovember 27, 2011

php代码类:

<?php 
/** 
* Copyright (c) 2011 - 01 XatuDream 
* XatuDream All Rights Reserved. 
* Support:185390516.qzone.qq.com 
* QQ:185390516 
* Author:Lau Version:1.01 
* Date:2010-08-12 09:28:32 
*/ 
! defined ( 'WORKSPACE' ) && exit ( "Access Denied !" ); 
class MD5Crypt { 
/** 
* Enter description here ... 
* @param unknown_type $str 
* @return string 
*/ 
public final static function mdsha($str) { 
$code = substr ( md5 ( $str ), 10 ); 
$code .= substr ( sha1 ( $str ), 0, 28 ); 
$code .= substr ( md5 ( $str ), 0, 22 ); 
$code .= substr ( sha1 ( $str ), 16 ) . md5 ( $str ); 
return self::chkToken () ? $code : null; 
} 
/** 
* Enter description here ... 
* @param unknown_type $param 
*/ 
private final static function chkToken() { 
return true; 
} 
/** 
* Enter description here ... 
* @param unknown_type $txt 
* @param unknown_type $encrypt_key 
* @return Ambigous <string, boolean> 
*/ 
private final static function keyED($txt, $encrypt_key) { 
$encrypt_key = md5 ( $encrypt_key ); 
$ctr = 0; 
$tmp = ""; 
for($i = 0; $i < strlen ( $txt ); $i ++) { 
if ($ctr == strlen ( $encrypt_key )) 
$ctr = 0; 
$tmp .= substr ( $txt, $i, 1 ) ^ substr ( $encrypt_key, $ctr, 1 ); 
$ctr ++; 
} 
return $tmp; 
} 
/** 
* Enter description here ... 
* @param unknown_type $txt 
* @param unknown_type $key 
* @return string 
*/ 
public final static function Encrypt($txt, $key) { 
srand ( ( double ) microtime () * 1000000 ); 
$encrypt_key = md5 ( rand ( 0, 32000 ) ); 
$ctr = 0; 
$tmp = ""; 
for($i = 0; $i < strlen ( $txt ); $i ++) { 
if ($ctr == strlen ( $encrypt_key )) 
$ctr = 0; 
$tmp .= substr ( $encrypt_key, $ctr, 1 ) . (substr ( $txt, $i, 1 ) ^ substr ( $encrypt_key, $ctr, 1 )); 
$ctr ++; 
} 
$_code = md5 ( $encrypt_key ) . base64_encode ( self::keyED ( $tmp, $key ) ) . md5 ( $encrypt_key . $key ); 
return self::chkToken () ? $_code : null; 
} 
/** 
* Enter description here ... 
* @param unknown_type $txt 
* @param unknown_type $key 
* @return Ambigous <string, boolean> 
*/ 
public final static function Decrypt($txt, $key) { 
$txt = self::keyED ( base64_decode ( substr ( $txt, 32, - 32 ) ), $key ); 
$tmp = ""; 
for($i = 0; $i < strlen ( $txt ); $i ++) { 
$md5 = substr ( $txt, $i, 1 ); 
$i ++; 
$tmp .= (substr ( $txt, $i, 1 ) ^ $md5); 
} 
return self::chkToken () ? $tmp : null; 
} 
/** 
* Enter description here ... 
* @var unknown_type 
*/ 
private static $_key = 'lau'; 
} 
?>

使用方法:
<?php //Code Start 
/** 
* Copyright (c) 2011 XatuDream 
* XatuDream All Rights Reserved. 
* Support:185390516.qzone.qq.com 
* QQ:185390516 
* Author:LoveCrystal Version:1.01 
* Date:2011-9-2 04:00:37 
*/ 
define ( 'WORKSPACE', '.' . DIRECTORY_SEPARATOR ); 
header ( "Content-Type: text/html; charset=utf-8" ); 
include_once 'Core/Library/MD5Crypt.class.php'; 
$a = MD5Crypt::Encrypt ( "A", 100 ); 
echo "EnCode:" . $a, "<br />"; 
echo "DeCode:" . MD5Crypt::Decrypt ( $a, 100 ); 
?>
PHP 相关文章推荐
PHP获取网站域名和地址的代码
Aug 17 PHP
PHP中exec与system用法区别分析
Sep 22 PHP
php中explode函数用法分析
Nov 15 PHP
php自动获取关键字的方法
Jan 06 PHP
PHP中is_dir()函数使用指南
May 08 PHP
php使用标签替换的方式生成静态页面
May 21 PHP
php随机获取金山词霸每日一句的方法
Jul 09 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
Oct 09 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
Dec 11 PHP
SSO单点登录的PHP实现方法(Laravel框架)
Mar 23 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
Sep 22 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 PHP
php UBB 解析实现代码
Nov 27 #PHP
PHP高自定义性安全验证码代码
Nov 27 #PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
Nov 26 #PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 #PHP
php 团购折扣计算公式
Nov 24 #PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
Nov 23 #PHP
打造超酷的PHP数据饼图效果实现代码
Nov 23 #PHP
You might like
PHP文件读写操作相关函数总结
2014/11/18 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
JQuery工具函数汇总
2015/06/15 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
jquery过滤特殊字符',防sql注入的实现方法
2016/08/17 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
2018/06/19 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
react基本安装与测试示例
2020/04/27 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
pygame实现弹力球及其变速效果
2017/07/03 Python
python绘制双柱形图代码实例
2017/12/14 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
对django 模型 unique together的示例讲解
2019/08/06 Python
python两个list[]相加的实现方法
2020/09/23 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
2021/01/24 Python
html5 canvas 简单画板实现代码
2012/01/05 HTML / CSS
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
很酷的小工具和电子产品商城:GearBest
2016/11/19 全球购物
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
村官学习十八大感想
2014/01/15 职场文书
高中课程设置方案
2014/05/28 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
2016年春节问候语
2015/11/11 职场文书
Web前端:CSS最强总结 附详细代码
2021/03/31 HTML / CSS
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android