设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
登录
注册
论坛首页
BBS
建站模版
微站设计
虚拟主机
企业邮箱
博客日志
Blog
搜索
搜索
搜索
热搜
长春
优惠
活动
做网站
本版
帖子
用户
本版
帖子
用户
请
登录
后使用快捷导航
没有帐号?
立即注册
道具
勋章
任务
留言板
设置
我的收藏
退出
时时商务社区
»
论坛首页
›
建站资源
›
建站技术
›
php用户密码加密算法分析【Discuz加密算法】 ...
返回列表
查看:
1546
|
回复:
0
php用户密码加密算法分析【Discuz加密算法】
[复制链接]
bewin83
当前离线
积分
7520
2500
主题
2513
帖子
7520
积分
论坛元老
论坛元老, 积分 7520, 距离下一级还需 9992479 积分
论坛元老, 积分 7520, 距离下一级还需 9992479 积分
积分
7520
发消息
电梯直达
楼主
发表于 2018-2-14 05:32:02
|
只看该作者
|
倒序浏览
|
阅读模式
本文实例讲述了php用户密码加密算法。分享给大家供大家参考,具体如下:
今天在拿Discuz进行二次开发时需要在代码里验证Discuz的用户名密码,结果不小心掉进了坑里,因为Discuz的论坛有两张表来存储用户数据,一张在Discuz的数据库ultrax里面的pre_common_member里面,另一个是存储在了UCenter的数据库ucenter的uc_members表里。花了很大功夫在研究ultrax库里那张pre_common_member的数据,研究它的密码是如何生成的,结果搜了一下发现网上说是随机生成的一个salt
心想这随机生成的salt如何在登录时进行验证呢?然后网上说其实Discuz压根就没用那个密码,自己试验了一下,果真如此,即使把pre_common_member里面的用户密码改掉,照样能够正常登录,看来这个密码压根就没用,害我绕了一个大圈子。
好了,进入正题,Discuz的密码加密算法其实就是两次MD5加密,首先用明文进行一次加密,之后随机生成一个salt,再把第一次的密文后面添加salt作为明文再进行一次MD5加密。salt保存在uc_members表里,可以通过用户名进行获取。
像这样:
MD5(MD5(明文)+salt)
下面是.net的实现代码:
string GetDiscuzPWString(string sourceStr, string salt)
{
return GetMd5Hash(string.Concat(GetMd5Hash(sourceStr),salt));
}
string GetMd5Hash(string input)
{
MD5 md5Hasher = MD5.Create();
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i
总结密码判断方式:
① 要安装UC
② 打开数据库找到uc_members 这表,寻找最后一个字段"salt ",复制里面的值
③ 伪代码:
$s=md5(md5("密码")."salt字段的值");
echo $s;
④ 用IF判断
⑤ 再说一次!那个随机是6位数!
PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:
密码安全性在线检测:
http://tools.jb51.net/password/my_password_safe
高强度密码生成器:
http://tools.jb51.net/password/CreateStrongPassword
MD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password
迅雷、快车、旋风URL加密/解密工具:
http://tools.jb51.net/password/urlrethunder
在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt
更多关于PHP相关内容感兴趣的读者可查看本站专题:《
php加密方法总结
》、《
PHP编码与转码操作技巧汇总
》、《
php面向对象程序设计入门教程
》、《
PHP数学运算技巧总结
》、《
PHP数组(Array)操作技巧大全
》、《
php字符串(string)用法总结
》、《
PHP数据结构与算法教程
》、《
php程序设计算法总结
》、《
php正则表达式用法总结
》、及《
php常见数据库操作技巧汇总
》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:
php生成随机密码的三种方法小结
PHP生成随机用户名和密码的实现代码
php中生成随机密码的自定义函数代码
php生成随机密码自定义函数代码(简单快速)
php密码生成类实例
php编写批量生成不重复的卡号密码代码
php实现随机生成易于记忆的密码
PHP生成随机密码方法汇总
纯php生成随机密码
PHP中快速生成随机密码的几种方式
PHP判断密码强度的方法详解
分享到:
QQ好友和群
QQ空间
腾讯微博
腾讯朋友
收藏
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
用户反馈
客户端