支持中文的php加密解密类代码
2023-06-13 09:14:31 时间
php代码类:
复制代码代码如下:
<?php
/**
*Copyright(c)2011-01XatuDream
*XatuDreamAllRightsReserved.
*Support:185390516.qzone.qq.com
*QQ:185390516
*Author:LauVersion:1.01
*Date:2010-08-1209:28:32
*/
!defined("WORKSPACE")&&exit("AccessDenied!");
classMD5Crypt{
/**
*Enterdescriptionhere...
*@paramunknown_type$str
*@returnstring
*/
publicfinalstaticfunctionmdsha($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);
returnself::chkToken()?$code:null;
}
/**
*Enterdescriptionhere...
*@paramunknown_type$param
*/
privatefinalstaticfunctionchkToken(){
returntrue;
}
/**
*Enterdescriptionhere...
*@paramunknown_type$txt
*@paramunknown_type$encrypt_key
*@returnAmbigous<string,boolean>
*/
privatefinalstaticfunctionkeyED($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;
}
/**
*Enterdescriptionhere...
*@paramunknown_type$txt
*@paramunknown_type$key
*@returnstring
*/
publicfinalstaticfunctionEncrypt($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);
returnself::chkToken()?$_code:null;
}
/**
*Enterdescriptionhere...
*@paramunknown_type$txt
*@paramunknown_type$key
*@returnAmbigous<string,boolean>
*/
publicfinalstaticfunctionDecrypt($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);
}
returnself::chkToken()?$tmp:null;
}
/**
*Enterdescriptionhere...
*@varunknown_type
*/
privatestatic$_key="lau";
}
?>
使用方法:
<?php//CodeStart
/**
*Copyright(c)2011XatuDream
*XatuDreamAllRightsReserved.
*Support:185390516.qzone.qq.com
*QQ:185390516
*Author:LoveCrystalVersion:1.01
*Date:2011-9-204: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);
?>
相关文章
- phpspreadsheet中文手册_php file_put_contents
- apache+php环境搭建教程_怎么搭建Php
- php将image转换为base64编码
- PHP数组排序函数
- 隐藏Apche、Nginx、PHP的版本号提高网站安全性详解程序员
- 版本实现Linux安装多个PHP版本的方法(linux安装多个php)
- PHP多进程处理并行处理任务实例(转,备用)详解编程语言
- 开发深入浅出:Linux环境下的PHP开发(linux环境php)
- Oracle与PHP:实现服务器端程序互通(oracle和php)
- 使用PHP和MySQL精心构建表单(php表单mysql)
- PHP实现MySQL表格删除(php删除mysql表)
- PHP与MySQL互动:开发动态网站的关键(php与mysql交互)
- Linux环境下,如何高效、简单地编写PHP代码(linux下写php)
- Linux上PHP重装教程(linux重装php)
- 使用PHP连接Oracle数据库(php连接oracle)
- 使用PHP在Linux系统中运行命令(php运行linux命令)
- PHP multipart/form-data 远程DOS漏洞
- PHP与MSSQL的快速无缝连接配置指南(php链接mssql配置)
- 使用PHP实现远程连接MSSQL数据库(php远程连接mssql)
- 解决PHP读取MSSQL数据库乱码问题(php读mssql乱码)
- PHP实现高效的Redis连接(redis连接 php)
- 用PHP来写记数器(详细介绍)
- 用PHP和ACCESS写聊天室(十)
- 超级全面的PHP面试题整理集合
- PHP和Mysqlweb应用开发核心技术第1部分Php基础-1开始了解php
- PHP中通过语义URL防止网站被攻击的方法分享
- php数据结构与算法(PHP描述)查找与二分法查找
- PHP管理内存函数memory_get_usage()使用介绍
- php中__destruct与register_shutdown_function执行的先后顺序问题