Быстрая ссылка на страницу IPBoard объясняющей, что форум использует стандартный md5(md5($salt).md5($password))
формат, который можно использовать здесь большинство форумов: https://www.invisionpower.com/support/guides/_/advanced-and-developers/miscellaneous/passwords-in-ipboard-r130IPBoard хеширование паролей вопрос, не соответствует алгоритм
Я на самом деле приходят от использования MyBB, который использует ту же структуру, поэтому я бы подумал, что просто изменение имен таблиц и столбцов в моем запросе приведет к относительно простому переключению, мальчик был я неправ.
оригинальный запрос, который я использовал был следующим
SELECT * FROM `forum_members` WHERE `name`=? AND `members_pass_hash`= MD5(CONCAT(MD5(members_pass_salt), MD5(?)))"
Это подготовленное заявление, в котором имя пользователя и пароль сырым предоставляются моим сервером. Это, к сожалению, не работало, я сделал несколько шагов и начал отлаживать данные, вместо использования функции SQL MD5 я захватил данные и выполнил проверки MD5 на Java, чтобы лучше понять, что происходит.
Для этого я использовал следующие функции MD5 я использовал в течение длительного времени:
public String MD5(String md5) {
try {
java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
byte[] array = md.digest(md5.getBytes());
StringBuffer sb = new StringBuffer();
for (int i = 0; i < array.length; ++i) {
sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1,3));
}
return sb.toString();
} catch (java.security.NoSuchAlgorithmException e) {
}
return null;
}
Это дало некоторые немного странные результаты, в которых данные не совпадая.
Database salt: *nzFC
Database hash: 6bac5cba673134ea084e481b57921134
Server generated hash: d7f94e3f262e7dee81b12ac087c42b18
Сервер генерируется уже был сгенерирован с помощью метода MD5(MD5(salt) + MD5(rawpassword))
на других форумах использовать, в том числе IPB. Это работало на MyBB, так что я немного взволнован.
Я проверил такие вещи, как проблемы с капитализацией и т. Д., Но я совершенно не понимаю.
Правильно, у каждого пользователя есть своя уникальная соль, также выдача команды в SQL приводит к: «2565f194634d1903e185202fab587ef9», который является совершенно другим хэшем. 'SELECT MD5 (CONCAT (MD5 (members_pass_salt), MD5 (members_pass_salt))) FROM' oblivion_server'. 'forum_members' WHERE 'member_id' = '1'' – Hobbyist
Этот запрос неверен. У вас есть столбец '' members_pass_salt'' там дважды. Второй должен быть необработанным паролем. – ub3rst4r
Кроме того, что соль и пароль ошибочны, я не уверен, что еще может быть проблемой. Вы должны получить некоторую помощь от [IPB Forums] (http://community.invisionpower.com/) – ub3rst4r