支持中文的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 相关文章推荐
使ecshop模板中可引用常量的实现方法
Jun 02 PHP
php 网上商城促销设计实例代码
Feb 17 PHP
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
Sep 30 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
Jul 22 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
May 12 PHP
深入理解PHP内核(一)
Nov 10 PHP
PHP数组函数知识汇总
May 12 PHP
在PHP语言中使用JSON和将json还原成数组的方法
Jul 19 PHP
浅析php如何实现App常用的秒发功能
Aug 03 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
May 11 PHP
PHP新手指南
Apr 01 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新手上路(九)
2006/10/09 PHP
收集的php编写大型网站问题集
2007/03/06 PHP
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
php+highchats生成动态统计图
2014/05/21 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
2014/07/08 PHP
PHP类的封装与继承详解
2015/09/29 PHP
php二维码生成
2015/10/19 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
JavaScript delete 属性的使用
2009/10/08 Javascript
FileUpload 控件 禁止手动输入或粘贴的实现代码
2010/04/07 Javascript
几个有趣的Javascript Hack
2010/07/24 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
jquery实现拖拽调整Div大小
2015/01/30 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
[01:14:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Orenda
2014/05/22 DOTA
分析python服务器拒绝服务攻击代码
2014/01/16 Python
python实现人民币大写转换
2018/06/20 Python
Django框架封装外部函数示例
2019/05/28 Python
django Admin文档生成器使用详解
2019/07/22 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
python使用minimax算法实现五子棋
2019/07/29 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
农村优秀教师事迹材料
2014/08/27 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
SpringBoot快速入门详解
2021/07/21 Java/Android
Python中基础数据类型 set集合知识点总结
2021/08/02 Python
POST提交数据常见的四种方式
2022/01/18 HTML / CSS