0

我已经为此工作了一段时间,并且发现了许多有关创建帐户的详细信息,但是在给定用户名和原始密码的情况下从帐户获取数据方面没有任何可靠的信息。对于这种情况,我们正在使用一个处理所有 Web 内容的 Joomla 服务器,以及一个为各种目的而创建的 C# 聊天服务器。

对于初学者,Joomla 使用 MD5(password)+":"+salt 处理 66 位散列密码。当然,我们不希望用户知道散列密码,所以我试图弄清楚如何从用户名和未加密的密码中获取行。

我想避免将密码拉到服务器,即使用户无法直接访问信息。我越是尝试对此进行研究,它就越不可能。

最近的尝试:

SELECT name, usertype FROM fnpolit2.llc_users WHERE username='userid' AND password='password';
SELECT name, usertype FROM fnpolit2.llc_users WHERE username='userid' AND password LIKE '%:%';
SELECT name, usertype FROM fnpolit2.llc_users WHERE username='userid' AND password LIKE (MD5('password')+':%');
4

2 回答 2

1

您的密码以 md5(password:salt) 的形式存储在 db 中,然后您可以使用这样的用户名和密码为用户选择

SELECT name, usertype FROM fnpolit2.llc_users WHERE username='userid' AND password =(MD5(CONCAT('password',':','salt')));

你想要一个用户名和密码匹配的用户,所以你应该寻找不一样的平等,并且 md5 已经坏了,所以不要将它用于生产系统。

于 2013-09-23T04:06:35.780 回答
0

我正在寻找的语法是

SELECT name, usertype FROM fnpolit2.llc_users WHERE username='userid' AND password=(CONCAT(MD5(CONCAT('password','salt')),':','salt'));

密码是加盐的,然后将加盐密钥附加到密码上。意味着我要么必须从数据库中获取密码,要么编写一个 SQL 函数来进行身份验证。

于 2013-09-24T14:33:45.193 回答