支持中文的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 27 PHP
php面向对象全攻略 (八)重载新的方法
Sep 30 PHP
一步一步学习PHP(2)――PHP类型
Feb 15 PHP
PHP5中使用DOM控制XML实现代码
May 07 PHP
PHP实现下载断点续传的方法
Nov 12 PHP
php读取flash文件高宽帧数背景颜色的方法
Jan 06 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
Sep 10 PHP
Symfony2实现从数据库获取数据的方法小结
Mar 18 PHP
利用PHP判断文件是否为图片的方法总结
Jan 06 PHP
分析php://output和php://stdout的区别
May 06 PHP
在Laravel中使用DataTables插件的方法
May 29 PHP
PHP isset empty函数相关面试题及解析
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
浅谈php正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
2015/03/27 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
2013/10/29 Javascript
jquery处理json对象
2014/11/03 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
2018/09/21 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
[14:24]Optic Gaming vs PSG LGD BO3
2018/06/07 DOTA
Python的print用法示例
2014/02/11 Python
Python 结巴分词实现关键词抽取分析
2017/10/21 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
2018/06/09 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
基于python 取余问题(%)详解
2020/06/03 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
挪威手表购物网站:Klokker
2016/09/19 全球购物
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
艺术教育实施方案
2014/05/03 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
生产车间管理制度
2015/08/04 职场文书
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL