支持中文的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类
Jul 15 PHP
让你的PHP同时支持GIF、png、JPEG
Oct 09 PHP
PHP一些有意思的小区别
Dec 06 PHP
一段防盗连的PHP代码
Dec 06 PHP
PHP访问Google Search API的方法
Mar 05 PHP
php实现用于删除整个目录的递归函数
Mar 16 PHP
php实现文本数据导入SQL SERVER
May 17 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
Mar 18 PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
PHP实现微信退款的方法示例
Mar 26 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
Apr 16 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
手冲咖啡应该是现代精品咖啡店的必备选项吗?
2021/03/03 冲泡冲煮
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
使用JavaScript 编写简单计算器
2014/11/24 Javascript
js+html5实现canvas绘制镂空字体文本的方法
2015/06/05 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
jquery实现的淡入淡出下拉菜单效果
2015/08/25 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
layui对工具条进行选择性的显示方法
2019/09/19 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
浅谈python中的正则表达式(re模块)
2017/10/17 Python
Python机器学习之决策树算法实例详解
2017/12/06 Python
Python中staticmethod和classmethod的作用与区别
2018/10/11 Python
python 通过可变参数计算n个数的乘积方法
2019/06/13 Python
对Python _取log的几种方式小结
2019/07/25 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
应聘收银员个人的求职信
2013/11/30 职场文书
启动仪式策划方案
2014/06/14 职场文书
合伙购房协议样本
2014/10/06 职场文书
小学数学国培研修日志
2015/11/13 职场文书
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android