支持中文的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 相关文章推荐
一个目录遍历函数
Oct 09 PHP
默默小谈PHP&amp;MYSQL分页原理及实现
Jan 02 PHP
解析thinkphp import 文件内容变量失效的问题
Jun 20 PHP
PHP中__FILE__、dirname与basename用法实例分析
Dec 01 PHP
php短网址和数字之间相互转换的方法
Mar 13 PHP
PHP实现的QQ空间g_tk加密算法
Jul 09 PHP
php实现将Session写入数据库
Jul 26 PHP
Discuz!X中SESSION机制实例详解
Sep 23 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
Smarty模板变量调节器用法分析
May 23 PHP
基于PHP制作验证码
Oct 12 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 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产生动态的影像图
2006/10/09 PHP
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
JS 判断undefined的实现代码
2009/11/26 Javascript
js下用层来实现select的title提示属性
2010/02/23 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
nodejs前端模板引擎swig入门详解
2018/05/15 NodeJs
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
Python中列表(list)操作方法汇总
2014/08/18 Python
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
Python ldap实现登录实例代码
2016/09/30 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
将pytorch转成longtensor的简单方法
2020/02/18 Python
让IE可以变相支持CSS3选择器
2010/01/21 HTML / CSS
一道SQL面试题
2012/12/31 面试题
医院护理人员的自我评价分享
2013/10/04 职场文书
幼儿园教师工作感言
2014/02/15 职场文书
解除劳动合同协议书范本
2014/04/14 职场文书
数控专业毕业生求职信
2014/06/12 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
openstack中的rpc远程调用的方法
2021/07/09 Python