我已经在这方面工作了一段时间,并且已经找到了很多关于创建帐户的详细信息,但是在给定用户名和原始密码的情况下从帐户获取数据没什么可靠的。对于这种情况,我们正在使用处理所有Web内容的Joomla服务器,以及为各种目的创建的C#聊天服务器。
对于初学者,Joomla使用MD5(密码)+“:”+ 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')+':%');
答案 0 :(得分:1)
您的密码以md5(密码:salt)的形式存储在db中,然后您可以使用这样的用户名和密码为用户选择
SELECT name, usertype FROM fnpolit2.llc_users WHERE username='userid' AND password =(MD5(CONCAT('password',':','salt')));
你想要一个具有匹配用户名和密码的用户,所以你应该寻找不相似的平等 并且md5已经损坏,所以不要将它用于生产系统。
答案 1 :(得分:0)
我正在寻找的语法是
SELECT name, usertype FROM fnpolit2.llc_users WHERE username='userid' AND password=(CONCAT(MD5(CONCAT('password','salt')),':','salt'));
密码被加密,然后盐密钥附加到密码。意味着我要么必须从数据库中获取一次密码,要么编写一个SQL函数进行身份验证。