找回密码
 立即注册

只需一扫,快速开始

QQ登录

只需一步,快速开始

搜索
查看: 24367|回复: 1

[技术经验] discuz论坛的用户加密方式和认证方式。

[复制链接]

8万

主题

438

回帖

9万

积分

管理员

积分
94403
QQ
发表于 2016-5-4 20:50:30 | 显示全部楼层 |阅读模式
1、用户密码信息存放在uc_members 表中,主要有关的字段有两个:
password------加密后的密码
salt-------加密是用到的随机秘钥,也就是加盐的盐

因此可见,discuz采用的是加盐的两次md5加密。

相关函数:
uc_client\control\user.php 文件中,有以下代码
1.png
  1.   $passwordmd5 = preg_match('/^\w{32}$/', $password) ? $password : md5($password);
  2.                 if(empty($user)) {
  3.                         $status = -1;
  4.                 } elseif($user['password'] != md5($passwordmd5.$user['salt'])) {
  5.                         $status = -2;
  6.                 } elseif($checkques && $user['secques'] != $_ENV['user']->quescrypt($questionid, $answer)) {
  7.                         $status = -3;
  8.                 } else {
  9.                         $status = $user['uid'];
  10.                 }
复制代码


其中途中圈出第一行,获取用户输入的密码第一次加密md5。圈出第二行,是吧这个md5加盐后再次md5 和数据库中密码比对。


也就是,密码md5后,然后再次加盐,然后再次md5 即为加密后的信息。
回复

使用道具 举报

1

主题

34

回帖

1311万

积分

神级站长

积分
13115727
发表于 2016-5-4 23:21:39 | 显示全部楼层
不知道楼主有没有考虑过升级成discuz F 1.0?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

QQ|Archiver|手机版|小黑屋|站秘书 ( 蜀ICP备15034504号-3 )

GMT+8, 2024-5-8 02:56 , Processed in 0.088914 second(s), 43 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表