Discuz密码加密规则: md5(md5(‘字符串’).’固定字串’); 固定字符串是在注册用户的时候随机生成的,且保存在数据表pre_ucenter_members的salt字段中。 举例:假如密码为 123456789 ,固定字符串为jb51, 那么加密规则为:md5(md5(‘123456789′).’jb51’); 得出的结果就是:96122ff0dd306c912aab15adccf21df1 Discuz密保加密规则: 加密过程是value的值先加密一次,比如我的提问是“驾驶执照的最后四位数字”value的值就是7,7的MD5为8 Discuz论坛是一款流行的开源社区建站系统,其在用户安全方面采用了独特的密码和密保加密机制,以确保用户账户的安全性。本文将详细介绍Discuz密码和密保的加密规则。 我们来看Discuz的密码加密规则。它采用了一种双重MD5的加密方式,增加了破解的难度。具体步骤如下: 1. 用户在注册时,输入的原始密码(例如:123456789)。 2. 将这个原始密码进行第一次MD5运算,得到一个MD5值(假设为MD5(123456789))。 3. 系统会生成一个随机的固定字符串(在这个例子中是'jb51'),并将其存储在数据表`pre_ucenter_members`的`salt`字段中。 4. 将第一步得到的MD5值与随机字符串拼接在一起(MD5(123456789) + 'jb51')。 5. 对拼接后的字符串进行第二次MD5运算,得到最终的加密密码。例如,MD5(MD5(123456789)'jb51') = 96122ff0dd306c912aab15adccf21df1。 这样,即使攻击者获取了数据库中的加密密码,由于不知道随机字符串,也无法轻易还原出原始密码。 接下来,我们讨论Discuz的密保加密规则。这个过程相对复杂,涉及到多次MD5运算和特定位数的提取: 1. 对于每一个密保问题,系统会为答案分配一个唯一的标识符,称为`value`。例如,对于问题"驾驶执照的最后四位数字",如果答案是7,则`value`的值为7。 2. `value`的值先进行MD5运算,得到一个MD5哈希值,例如8f14e45fceea167a5a36dedd4bea2543。 3. 用户的答案(如"1v1.name")与上一步的MD5值拼接成新的字符串:"1v1.name8f14e45fceea167a5a36dedd4bea2543"。 4. 对这个拼接后的字符串执行MD5运算,得到新的MD5哈希值,如f5d8e00a4ebc9ead4611c04706ae05fd。 5. 从这个MD5哈希值中提取第17到24位的8位字符串作为数据库中存储的密保答案,即"4611c047"。 这种加密策略使得即使攻击者知道了部分信息,也无法轻易还原出完整的密保答案,进一步增强了安全性。 为了确保用户账户的安全,Discuz的开发者们还设计了其他的加密函数和机制,如authcode,这是一种基于密钥的编码算法,用于防止数据在传输过程中被篡改。此外,还有一些常见的PHP加密解密函数,如MD5、SHA系列、AES、DES等,这些函数在Discuz中也有应用,用于增强系统的整体安全性。 Discuz通过采用双层MD5和密保加密规则,以及结合其他加密技术,为论坛用户提供了相当高的安全保障。开发者在设计类似系统时,可以参考这些加密策略,以提升用户数据的安全性。同时,了解这些加密方法也有助于开发者更好地理解和处理安全问题。
- 粉丝: 6
- 资源: 945
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0