当前位置:首页 > 日记 > 正文

在discuz程序的PHP加密功能的原理分析

在discuz程序的PHP加密功能的原理分析
其原理如下:
加密
明文:10101001
密钥:11100011
密文:01001010
为了得到密码01001010,解密的需要和秘密的秘密密钥将是可能的。
解密
密文:01001010
密钥:11100011
明文:10101001
没有高深度的算法,而密钥是非常重要的,所以关键是如何生成密钥。
所以让我们看看如何验证码可以一起做
复制代码代码如下所示:
参数解释
字符串:明文或密文
操作:解码说其他的解密,加密
密钥: $键
过期:有效密文
功能验证码($字符串操作= 'decode美元,美元关键=,= 0美元到期){
动态密钥长度,同一明文会产生不同的密文,是依靠动态密钥。
ckey_length = 4美元;


美元关键= MD5(美元美元美元关键关键:{ 'discuz_auth_key全局'});

密钥将参与加密和解密。
$keya = MD5 (substr ($key, 0, 16));
该键将用于进行数据完整性验证。
$键盘= MD5(substr($,16, 16));
C/密文生成变化的关键
keyc = $($美元ckey_length操作= = 'decode'substr($字符串,0,ckey_length美元):
substr(MD5(瞬时()),至ckey_length)):;
参与键的操作
cryptkey = $(美元keya.md5科亚keyc美元美元。);
key_length美元= strlen($ cryptkey);
/ /明文,10节省时间戳之前,验证数据加密的有效性,10到26位来存储键盘美元(关键B),解密这个关键的数据完整性验证
如果是 / /解码,将开始从ckey_length美元,因为之前ckey_length美元拯救动态密钥的密文,确保正确的解密
$字符串操作= = 'decode'base64_decode美元(substr($字符串,ckey_length美元)):
sprintf(% 010d美元美元,到期届满+时间()():0)。Substr(MD5($字符串。$键盘),0, 16)。为字符串;
string_length美元= strlen($字符串);
结果=;
框=范围(0, 255);
rndkey美元=阵();
拥有/密钥簿
($ i = 0;$ i < 255;$ + +){
{ } =我rndkey美元美元ORD($ cryptkey { $ % $我key_length });
}
用固定的算法,破坏密钥本,增加随机性,看起来很复杂,实际上增加了密文的强度不是。
对于($ = $ I = 0;$ i < 256;$ + +){
J =(J + $盒{ $我} + $ rndkey { $我})% 256;
$ = $;
$;
$;
}
加密和解密的核心部分。
为($ = $ J = $我= 0;美元美元美元我<< string_length;i++){
$ =($ + 1)% 256;
$ =($ J $ +盒{ })% 256;
$ $ =;
$;
$;
从这本书中的关键字键或把它变成一个字符。
由于美元= CHR(ORD($字符串{我})^(合箱{(合箱{一} +美元美元箱{ $ J })% 256 }));
}
如果(= = 'decode操作美元){
/ / substr($,0, 10)数据有效性验证= = 0
/ / substr($,0, 10)时间(0)>有效性验证数据
/ / substr($,10, 16)= substr(MD5(substr($,26)美元的键盘),0, 16)来验证数据的完整性
验证数据 / /有效性,请参阅未加密的明文格式
如果((substr($,0, 10)= = 0 | | substr($,0, 10)-(时间)> 0)
Substr ($result, 10, 16) = substr (MD5 (substr ($result, 26).$keyb), 0, 16)) {
返回substr($,26);
{人}
返回' ';
}
{人}
密钥存储在动态密文中,这就是同一明文、密文解密可以产生不同的原因。
/ /因为加密的密文,可能是一些特殊的字符,复制过程可能会丢失,所以使用Base64编码
返回的keyc.str_replace(' = ',' ',base64_encode($结果));
}
}

但有点遗憾的是,这个函数不属于Comsenz的免费使用

相关文章

winsrv32.exe的过程是怎样的

winsrv32.exe的过程是怎样的

的是,过程,是怎样,电脑软件,exe,评论:对winsrv32.exe工艺简介 进程文件:winsrv32或winsrv32.exe 进程名称:aduent病毒 过程类别:安全风险的过程 英文描述: winsrv32.exe添加到系统,作为一个结果的aduent病毒。它会自动安装一个Internet Explore…

是ehrecvr.exe过程安全吗过程ehrec

是ehrecvr.exe过程安全吗过程ehrec

过程,电脑软件,ehrecvr,exe,评论:详细的介绍了ehrecvr.exe - ehrecvr过程信息 进程文件:ehrecvr或ehrecvr.exe 过程名称:媒体中心接收服务 过程类别:安全风险的过程 英文描述: ehrecvr.exe过程是属于微软的Windows媒体中心和媒体,它也被称为以…

Linux后台执行器是如何操作的

Linux后台执行器是如何操作的

操作,后台,执行器,电脑软件,Linux,点评:在Linux中,实施的背景与Windows写的不同,因为我们的后台程序主要是通过php.exe文件通过系统来实现的,但在Linux,没有php.exe文件,但在 / usr /斌/ phpldquo其实php.exe在Windows。 因此,我们在后台执行的程…

当玩游戏时,黑对话框会被蓝屏重启。

当玩游戏时,黑对话框会被蓝屏重启。

对话框,重启,蓝屏,玩游戏,电脑软件,问题: 电脑播放的是笑的股票。比赛之前不错。现在有一个问题。玩游戏时,屏幕左上角有一个黑色对话。然后计算机将重新启动蓝屏,它会出现一天或两次。 电脑配置,处理器e5440和Xeon主板MSI微星p35-neo2-fr,MSI…

虚拟机在线设置固定IP虚拟机网络设

虚拟机在线设置固定IP虚拟机网络设

虚拟机,在线,设置,教程,网络设置,注释:虚拟机的网络连接中的本地连接与自动获取IP地址一样好。有需要固定IP到互联网的协议设置,有兴趣的朋友可以理解一下。 在虚拟机的网络连接中;本地连接;使用自动获取IP地址;OK,需要固定IP的Internet协议设置…

Win32API是win32api.exe-过程

Win32API是win32api.exe-过程

过程,电脑软件,Win32API,win32api,exe,评论:win32api.exe - WIN32API的过程 进程文件:Win32API或win32api.exe 进程名称:WIN32API间谍 过程类别:安全风险的过程 英文描述: win32api.exe是一个广告间谍软件。此过程监视您的浏览习惯,并将数据分…

回收站损坏了是否在驱动器(解决方案

回收站损坏了是否在驱动器(解决方案

解决方案,损坏,驱动器,回收站,清空,问题: 我电脑上的回收站有问题。只要我按删除键删除文件,系统就会提示。回收站已经损坏,清空了回收站。我们必须按组合键和Ctrl +delete。不知道发生了什么事 答案uff1a 该系统存在上述问题,只能对回收站进…

在Linux下创建计划运行PHP文件的方

在Linux下创建计划运行PHP文件的方

文件,运行,计划,方法,电脑软件,点评:该项目计划在6:10每天执行filename.php文件简单写一行日志。 复制代码代码如下所示: dos2unix / / / filename.php路径 crontab -e 106 * * / / /路径filename.phpchomod + X /路径 / / filename.php PHP…

PHP生成代码的当地独特的识别代码

PHP生成代码的当地独特的识别代码

码流,识别,独特,代码,电脑软件,UUID(通用唯一标识符),GUID的预计时间和空间范围内产生一个独特的识别码,在分布式计算环境中是必要的。然而,如果你只是想在一个有限的局部环境,创建一个本地唯一识别码,使用的UUID是矫枉过正,局部唯一的识别码,我叫流…

PPS不能播放视频。

PPS不能播放视频。

播放视频,电脑软件,PPS,问题: 客户端计算机PPS不能使用,打开后,右边的列表不能显示,而电脑要死了,打开任何软件都很卡。我觉得PPS软件坏了。卸载后,我要再次下载,打开浏览器,找到百度搜索官方的PPS网站,点击打开下载页面,发现网页打不开。也尝试下载…

Windows已阻止此软件,因为它无法验

Windows已阻止此软件,因为它无法验

发行人,解决方案,验证,因为它,电脑软件,问题: 在办公自动化(OA)系统的使用,IE浏览器需要负载被加载。然而,加载控件时,系统提示Windows已经阻止了;因为它无法验证的软件出版商之后,按钮无法继续安装,使OA系统无法使用电子签名功能。我不知道要做什…

修改PHP中的浏览器用户代理来伪装

修改PHP中的浏览器用户代理来伪装

浏览器,修改,用户代理,操作系统,电脑软件,让http_user_agent方式很简单,如PHP代码: 复制代码代码如下所示: > 复制代码代码如下所示: > 这两种信息,如用户代理和IP,最好与正则表达式相结合,以过滤和过滤信息。 ——用户代理列表——— Inter…