支持中文的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 相关文章推荐
discuz安全提问算法
Jun 06 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
Jun 30 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 PHP
一个显示效果非常不错的PHP错误、异常处理类
Mar 21 PHP
PHPAnalysis中文分词类详解
Jun 13 PHP
destoon官方标签大全
Jun 20 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
Jun 30 PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
PHP设计模式之装饰器模式定义与用法简单示例
Aug 13 PHP
laravel 验证错误信息到 blade模板的方法
Sep 29 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
2019十大人气国漫
2020/03/13 国漫
高亮度显示php源代码
2006/10/09 PHP
一个基于PDO的数据库操作类
2011/03/24 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
Js与下拉列表处理问题解决
2014/02/13 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
JS实现Ajax的方法分析
2016/12/20 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
Mongoose经常返回e11000 error的原因分析
2017/03/29 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
2018/08/24 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
2019/06/17 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
go和python变量赋值遇到的一个问题
2017/08/31 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
Python中循环后使用list.append()数据被覆盖问题的解决
2018/07/01 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
中专生自荐信
2013/10/12 职场文书
基层干部2014全国两会学习心得体会
2014/03/10 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
nginx中proxy_pass各种用法详解
2021/11/07 Servers
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫