支持中文的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中使用Oracle数据库(3)
Oct 09 PHP
FirePHP 推荐一款PHP调试工具
Apr 23 PHP
linux下为php添加curl扩展的方法
Jul 29 PHP
记录PHP错误日志 display_errors与log_errors的区别
Oct 09 PHP
php旋转图片90度的方法
Nov 07 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
Dec 18 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
Dec 28 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
PHP htmlspecialchars()函数用法与实例讲解
Mar 08 PHP
PHP实现发送微博消息功能完整示例
Dec 04 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
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
PHP生成plist数据的方法
2015/06/16 PHP
php编写简单的文章发布程序
2015/06/18 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
2012/03/14 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
2013/01/15 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
jquery插件uploadify实现带进度条的文件批量上传
2015/12/13 Javascript
javascript函数命名的三种方式及区别介绍
2016/03/22 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
Vuex的初探与实战小结
2018/11/26 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
BootstrapValidator实现表单验证功能
2019/11/08 Javascript
JavaScript实现滑动门效果
2020/01/18 Javascript
详解vue3.0 的 Composition API 的一种使用方法
2020/10/26 Javascript
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
使用Python下载Bing图片(代码)
2013/11/07 Python
python自动zip压缩目录的方法
2015/06/28 Python
python读写ini配置文件方法实例分析
2015/06/30 Python
Python实现全排列的打印
2018/08/18 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
如何在 Django 模板中输出 &quot;{{&quot;
2020/01/24 Python
python palywright库基本使用
2021/01/21 Python
英国工具中心:UK Tool Centre
2017/07/10 全球购物
《九色鹿》教学反思
2014/02/27 职场文书
党委班子对照检查材料
2014/08/19 职场文书
协会周年庆活动方案
2014/08/26 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang