支持中文的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桌面中心(四) 数据显示
Mar 11 PHP
PHP 模拟登陆MSN并获得用户信息
May 16 PHP
php中session_unset与session_destroy的区别分析
Jun 16 PHP
php中switch与ifelse的效率区别及适用情况分析
Feb 12 PHP
javascript+php实现根据用户时区显示当地时间的方法
Mar 11 PHP
基于php的CMS中展示文章类实例分析
Jun 18 PHP
PHP多维数组转一维数组的简单实现方法
Dec 23 PHP
PHP获取访问页面HTTP状态码的实现代码
Nov 03 PHP
简单实现php上传文件功能
Sep 21 PHP
Laravel使用消息队列需要注意的一些问题
Dec 13 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
Sep 19 PHP
PHP命名空间(namespace)原理与用法详解
Dec 11 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
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
一个JS小玩意 几个属性相加不能超过一个特定值.
2009/09/29 Javascript
javascript闭包的理解
2015/04/01 Javascript
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
JS定时器用法分析【时钟与菜单中的应用】
2016/12/21 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
Vue2.0结合webuploader实现文件分片上传功能
2018/03/09 Javascript
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
angularJS自定义directive之带参方法传递详解
2018/10/09 Javascript
使用vue自定义指令开发表单验证插件validate.js
2019/05/23 Javascript
js中switch语句的学习笔记
2020/03/25 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
python和bash统计CPU利用率的方法
2015/07/10 Python
使用python3.5仿微软记事本notepad
2016/06/15 Python
Python如何判断数独是否合法
2016/09/08 Python
python使用Apriori算法进行关联性解析
2017/12/21 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
2019/01/07 Python
如何运行带参数的python脚本
2019/11/15 Python
python爬虫实现获取下一页代码
2020/03/13 Python
python 工具 字符串转numpy浮点数组的实现
2020/03/14 Python
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
小学毕业典礼主持词
2014/03/27 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
生日答谢词
2015/01/05 职场文书
2015年外联部工作总结
2015/04/03 职场文书
《女娲补天》教学反思
2016/02/20 职场文书
解决Golang中ResponseWriter的一个坑
2021/04/27 Golang
Java字符串逆序方法详情
2022/03/21 Java/Android