【发布时间】:2013-06-27 09:41:07
【问题描述】:
我花了一整天的时间寻找解决问题的方法,最后决定发帖寻求帮助。 我真的不知道这是否是发布此内容的最佳地点,但也许有人可以帮助我。
所以我试图在 C# 中创建一个简单的登录表单 从数据库中获取用户名、MD5(密码)和盐时一切正常。现在我的问题是如何从我的表单输入的密码+盐进行比较。我不知道当用户在论坛上创建帐户时 vbulleting 如何存储密码,也不知道他如何生成盐,如果它是随机的,或者用户名基础,以及他进行了多少次迭代。
谁能帮帮我?
编辑:-
$vbulletin->userinfo['password'] != iif($password AND !$md5password, md5(md5($password) . $vbulletin->userinfo['salt']), '') AND
$vbulletin->userinfo['password'] != iif($md5password, md5($md5password . $vbulletin->userinfo['salt']), '') AND
$vbulletin->userinfo['password'] != iif($md5password_utf, md5($md5password_utf . $vbulletin->userinfo['salt']), '')
找到了,但仍然不知道他们是如何做到的,所以我可以尝试在 c# 中重现它
最好的问候, 玛格
【问题讨论】:
-
密码的 MD5 已经被破坏了 .. 无论如何,也许 vbulletin 基础架构已记录在案?如果没有,也许可以查看源代码(PHP?)?记得验证哈希+盐密码,使用算法:
hash(combine(salt, input)) == hashed。在这种情况下,我想hash等同于md5(如前所述),但是将盐与输入结合的方法可能会有所不同,尽管通常它只是在前面。 -
另外,与数据库无关,因为“从数据库中获取 .. 工作正常”。
-
哦,嗯,好像我把vBulletin 与常见的 PHP 板之一混淆了......但同样的想法也成立。必须知道(或确定)哈希算法、盐组合策略和任何其他详细信息(如 HMAC,如果使用)。
-
是的,问题不是从数据库中检索值,而是比较密码,因为无论我尝试什么方法,它们都不会匹配。
-
即使使用此link 并提供正确的密码 + 正确的盐 + 正确的用户名,也没有任何结果有效。
标签: c# login passwords salt vbulletin