支持中文的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 session有效期问题
Apr 26 PHP
php在服务器执行exec命令失败的解决方法
Mar 03 PHP
php常用ODBC函数集(详细)
Jun 24 PHP
关于PHP session 存储方式的详细介绍
Jun 25 PHP
php实现批量压缩图片文件大小的脚本
Jul 04 PHP
两种php去除二维数组的重复项方法
Nov 04 PHP
php实现的http请求封装示例
Nov 08 PHP
PHP实现移除数组中为空或为某值元素的方法
Jan 07 PHP
thinkphp 手机号和用户名同时登录
Jan 20 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
PHP中str_split()函数的用法讲解
Apr 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边学边教》(02.Apache+PHP环境配置――下篇)
2006/12/13 PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
2012/06/21 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
JavaScript 指导方针
2007/04/05 Javascript
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
jquery获取html元素的绝对位置和相对位置的方法
2014/06/20 Javascript
jQuery设置指定网页元素宽度和高度的方法
2015/03/25 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
Vue shopCart 组件开发详解
2018/01/26 Javascript
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
python和shell实现的校验IP地址合法性脚本分享
2014/10/23 Python
使用Python实现一个简单的项目监控
2015/03/31 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
Django实现微信小程序支付的示例代码
2020/09/03 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
通过一张图教会你CSS3倒影的实现
2017/09/26 HTML / CSS
html5定位并在百度地图上显示的示例
2014/04/27 HTML / CSS
销售自我评价
2013/10/22 职场文书
营业员个人总结的自我评价
2013/10/25 职场文书
新闻专业推荐信范文
2013/11/20 职场文书
采购员的工作职责
2013/12/26 职场文书
小学新学期寄语
2014/04/02 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
男方婚前保证书
2015/02/28 职场文书
管理失职检讨书范文
2015/05/05 职场文书
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技