支持中文的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删除数组中的特定元素的代码
Jun 28 PHP
一组PHP加密解密函数分享
Jun 05 PHP
浅析PHP中strlen和mb_strlen的区别
Aug 31 PHP
php array_merge函数使用需要注意的一个问题
Mar 30 PHP
php递归实现无限分类的方法
Jul 28 PHP
thinkphp如何获取客户端IP
Nov 03 PHP
php验证码生成代码
Nov 11 PHP
详解PHP中websocket的使用方法
Sep 15 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
Laravel5.5新特性之友好报错以及展示详解
Aug 13 PHP
php实现微信支付之现金红包
May 30 PHP
YII框架常用技巧总结
Apr 27 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投票程序源码
2007/03/11 PHP
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
php中静态类与静态变量用法的区别分析
2015/01/15 PHP
php实现的通用图片处理类
2015/03/24 PHP
Mootools 1.2教程 类(一)
2009/09/15 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
jQuery实现下拉框选择图片功能实例
2015/08/08 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
JS判断微信扫码的方法
2017/08/07 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
python 编程之twisted详解及简单实例
2017/01/28 Python
用python制作游戏外挂
2018/01/04 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
Python 多维List创建的问题小结
2019/01/18 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
浅析python标准库中的glob
2020/03/13 Python
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
学校办公室主任职责
2013/12/27 职场文书
协议书模板
2014/04/23 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
致800米运动员广播稿(10篇)
2014/10/17 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书