支持中文的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 相关文章推荐
一个没有MYSQL数据库支持的简易留言本的编写
Oct 09 PHP
PHP insert语法详解
Jun 07 PHP
php cookie 登录验证示例代码
Mar 16 PHP
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
Mar 15 PHP
用php或asp创建网页桌面快捷方式的代码
Mar 23 PHP
php批量上传的实现代码
Jun 09 PHP
基于php iconv函数的使用详解
Jun 09 PHP
ThinkPHP和UCenter接口冲突的解决方法
Jul 25 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
Mar 15 PHP
PHP laravel中的多对多关系实例详解
Jun 07 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
laravel 获取某个查询的查询SQL语句方法
Oct 12 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小型企业库存管理系统的设计与实现代码
2011/05/16 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
php中HTTP_REFERER函数用法实例
2014/11/21 PHP
Smarty变量用法详解
2016/05/11 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
jquery获取及设置outerhtml的方法
2015/03/09 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
微信小程序 获取设备信息 API实例详解
2016/10/02 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
html-webpack-plugin修改页面的title的方法
2020/06/18 Javascript
[01:55]《走出家门看比赛》——DOTA2 2015国际邀请赛同城线下观战
2015/07/18 DOTA
python练习程序批量修改文件名
2014/01/16 Python
Python OS模块常用函数说明
2015/05/23 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
Python标准库shutil用法实例详解
2018/08/13 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
Python的两道面试题
2013/06/29 面试题
道歉信怎么写
2015/05/12 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
七年级作文之游记
2019/12/11 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript