|
需求:当用户登录成功后,Discuz 程序会将登录凭证以响应的方式写入到 cookie 中,如果知道 cookie 后,如何解密 cookie 中当前登录者的用户 Id 呢?
首先,需要登录到服务器,查看 /config/config_global.php 中如下 2 个配置:
Cookie 前缀:$_config['cookie']['cookiepre']
加解密 Key:$_config['security']['authkey']
以本站为例:$_config['cookie']['cookiepre'] = 'Mqd1_';,所以就查看 cookie 中的:Mqd1_2132_saltkey 和 Mqd1_2132_auth 的值。
原理如下:
$authkey = "*********";这个是秘钥。在config/config_global.php文件中的 $_config['security']['authkey'] = '*******';就是这个,你看看你自己的是什么就是什么.
$salt = $_COOKIE['Mqd1_2132_saltkey'];//这个是discuz产生的随机数
$key = md5($authkey.$salt);//解密key
$info = uc_authcode($_COOKIE['Mqd1_2132_auth'], 'DECODE',$key);
然后打印出来$info得到的结果类似于这种:
bf6b7e1ddd3da431342f550eb8ce19e5 1
我们发现后面有个1或者其他数字,这个数字表示你的用户id,这样我们就获得的用户信息,然后根据这个id获取ucenter的用户信息即可。 知道如何解密后,c# 代码如下:
在程序输入对应信息,执行结果如下:
程序下载:
|
上一篇:【实战】搭建家庭媒体 Docker 之迅雷下载、DLNA 服务下一篇:VDI 产品比较:VMware Horizon 与 Citrix
|