PHP加密/解密函数dencrypt(动态密文,带压缩功能,支持中文)
2023-06-13 09:14:08 时间
//+----------------------------------------------------------------------+
//|WillkoFramework|
//+----------------------------------------------------------------------+
//|Copyright(c)2008-2009WillkoCheng|
//+----------------------------------------------------------------------+
//|Authors:WillkoCheng<willko@foxmail.com>|
//+----------------------------------------------------------------------+
//$string明文或密文
//$isEncrypt是否加密
//$key密匙
//采用SHA1生成密匙簿,超过300个字符使用ZLIB压缩
functiondencrypt($string,$isEncrypt=true,$key=KEY_SPACE){
if(!isset($string{0})||!isset($key{0})){
returnfalse;
}
$dynKey=$isEncrypt?hash("sha1",microtime(true)):substr($string,0,40);
$fixedKey=hash("sha1",$key);
$dynKeyPart1=substr($dynKey,0,20);
$dynKeyPart2=substr($dynKey,20);
$fixedKeyPart1=substr($fixedKey,0,20);
$fixedKeyPart2=substr($fixedKey,20);
$key=hash("sha1",$dynKeyPart1.$fixedKeyPart1.$dynKeyPart2.$fixedKeyPart2);
$string=$isEncrypt?$fixedKeyPart1.$string.$dynKeyPart2:(isset($string{339})?gzuncompress(base64_decode(substr($string,40))):base64_decode(substr($string,40)));
$n=0;
$result="";
$len=strlen($string);
for($n=0;$n<$len;$n++){
$result.=chr(ord($string{$n})^ord($key{$n%40}));
}
return$isEncrypt?$dynKey.str_replace("=","",base64_encode($n>299?gzcompress($result):$result)):substr($result,20,-20);
}
相关文章
- 大型仓库进销存管理系统php源代码,多仓版进销存管理系统PHP源码ERP仓库管理系统php网络版进销存源码…
- CentOS7升级PHP到7.x
- PHP 编程SQL注入问题与代码
- PHP标记(4种风格)
- 妙用Linux:快速启动PHP程序(linux如何启动php)
- Linux更新:升级PHP版本(linux更新php版本)
- 测试MySQL触发器构建:PHP测试实例(mysql触发器php)
- PHP操作MySQL:实现数据库写入操作(php写入mysql)
- PHP助力MySQL实现程序开发梦想(php支持mysql)
- 实现PHP与MongoDB的桥梁:连接数据库(php连接mongodb)
- php 5.5使用 array_column的方法详解编程语言
- MySQL事务处理流程及PHP实现(mysql事务php)
- PHP在Linux上的安装(php安装linux)
- 实现Linux版PHP动态编译——一案子的艰辛实践(php编译linux)
- PHP如何正确输出MySQL中文字符避免乱码?(php输出mysql乱码)
- PHP如何获取MySQL版本?(php获取mysql版本)
- 那么流行PHP和MySQL——广泛应用的利器(为什么php和mysql)
- PHP连接MySQL指南(php连mysql)
- 如何在PHP中启用MSSQL数据库连接(php开启mssql)
- 测试PHP连接MS SQL 数据库的结果(php链接mssql测试)
- 使用PHP连接MSSQL数据库的实例示范(php连接mssql例子)
- 解决PHP输出MSSQL数据中文乱码问题(php输出MSSQL乱码)
- php中使用Redis:更快更灵活的缓存实现(redis的php扩展)
- PHP和XML:使用expat函数(三)
- PHP地址栏信息的获取代码
- 一步一步学习PHP(4)php函数补充2
- php截取utf-8中文字符串乱码的解决方法
- PHP正则表达式基本函数修饰符元字符和需转义字符说明
- PHP下利用header()函数设置浏览器缓存的代码
- 支持中文的php加密解密类代码
- php中的注释、变量、数组、常量、函数应用介绍
- PHP静态调用非静态方法的应用分析
- php实现统计邮件大小的方法
- php中print(),print_r(),echo()的区别详解
- PHP实现根据设备类型自动跳转相应页面的方法
- php设计模式之简单工厂模式详解