Как же всё-таки авторизоваться на SMF? Проблема с шифрованием пароля.

Автор sgretsch, 27 марта 2008, 22:26:01

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

sgretsch

Пишу некий интерфейс на C# который использует авторизацию на форуме. Никак не могу авторизоваться, простой SHA1 не подходит. Читал это http://www.simplemachines.ru/index.php/topic,3215.msg19444.html#msg19444

тоже ничего не получается. Чтоже там подмешивается всё-таки. Почему Эксплорером всё нормально авторизуется? Как получить схожий хеш?


sgretsch

Вообщем разобрался. Кому-нибудь это возможно пригодится, пишу: В браузере вызывается функция hashLoginPassword(). Привожу код

function hashLoginPassword(doForm, cur_session_id)
{
// Compatibility.
if (cur_session_id == null)
cur_session_id = smf_session_id;

if (typeof(hex_sha1) == "undefined")
return;
// Are they using an email address?
if (doForm.user.value.indexOf("@") != -1)
return;

// Unless the browser is Opera, the password will not save properly.
if (typeof(window.opera) == "undefined")
doForm.passwrd.autocomplete = "off";

doForm.hash_passwrd.value = hex_sha1(hex_sha1(doForm.user.value.php_to8bit().php_strtolower()
+ doForm.passwrd.value.php_to8bit()) + cur_session_id);

// It looks nicer to fill it with asterisks, but Firefox will try to save that.
if (is_ff != -1)
doForm.passwrd.value = "";
else
doForm.passwrd.value = doForm.passwrd.value.replace(/./g, "*");
}


Таким образом чтобы нормально пароль передать, надо сделать преобразования: $sha1($sha1($lower(%username) $+ %password) $+ %sessionid). Соединить(конкатенировать :) username с паролем, зашифровать sha1. Результат конкатенировать с sessionID (приходит при начальной загрузке страницы, например onsubmit="hashLoginPassword(this, '3533b27fb323f415d101f9b02ef0bb3c')) и ещё раз sha1.

слова: Sha1, SMF, password, hash, hashLoginPassword, hash_passwrd.

Jerry

Оффтоп: SHA1?! Разве СМФ не MF5 юзает?! :o В базе похоже на него.

digger®

Цитата: Sikes от 30 марта 2008, 00:32:34
Оффтоп: SHA1?! Разве СМФ не MF5 юзает?! :o В базе похоже на него.

Уважаемая администрация, кто-нибудь наконец поменяет этому человеку, непонятно как ему попавшую, группу Moderator на Chainik ?

Jerry

Я в этом разделе и не модератор. И в этом разделе и чайниковские вопросы. Всё по правилам же.

sgretsch

Цитата: digger от 30 марта 2008, 01:30:56
Уважаемая администрация, кто-нибудь наконец поменяет этому человеку, непонятно как ему попавшую, группу Moderator на Chainik ?

Sha1 с версии 1.1.4, раньше был md5 вроде, но я не специалист в истории версий.