支持中文的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 相关文章推荐
一个简易需要注册的留言版程序
Oct 09 PHP
PHP 开源框架22个简单简介
Aug 24 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
Aug 21 PHP
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
Dec 29 PHP
PHP反转字符串函数strrev()函数的用法
Feb 04 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
Jan 06 PHP
深入解析php中的foreach问题
Jun 30 PHP
php使用curl检测网页是否被百度收录的示例分享
Jan 31 PHP
PHP实现图片裁剪、添加水印效果代码
Oct 01 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
Nov 06 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
Nov 10 PHP
PHP多进程简单实例小结
Nov 09 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
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
php变量范围介绍
2012/10/15 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
JavaScript Event学习第九章 鼠标事件
2010/02/08 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
jQuery团购倒计时特效实现方法
2015/05/07 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
在微信小程序中使用vant的方法
2019/06/07 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
python使用sqlite3时游标使用方法
2018/03/13 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
python实现双色球随机选号
2020/01/01 Python
Python爬虫防封ip的一些技巧
2020/08/06 Python
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
党员教师工作决心书
2014/03/13 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
学习保证书
2015/01/17 职场文书
离职感谢信怎么写
2015/01/22 职场文书
安全学习心得体会范文
2016/01/18 职场文书
2016年读书月活动总结范文
2016/04/06 职场文书
Nginx工作原理和优化总结。
2021/04/02 Servers
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers