SA-MP Forums Archive
Хеш пароля - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Хеш пароля (/showthread.php?tid=573810)



Хэш пароля - nonamepawn - 10.05.2015

Всем привет вообщем хочу сделать авторизацию на сервере через базу данных сайта на движке IPS 4.0 пароль в базе храниться в таком виде

PHP код:
77d583bbc2823975cfb1ec68ba6fb7a 
кто знает как на со стороны сервера отследить правильность пароля, т.е вводимое значение превратить в такой же вид и сверить с базой.


Re: Хеш пароля - S4D - 10.05.2015

https://www.invisionpower.com/suppor...n-ipboard-r130
это?


Re: Хеш пароля - eakwarp - 10.05.2015

Обычный MD5 хэш, YSI в помощь.


Re: Хеш пароля - nonamepawn - 10.05.2015

Спасибо попробую сначала обычный md5 но подсказывает тутор отправленный выше что не все так просто)


Re: Хеш пароля - Stepashka - 10.05.2015

Что бы сравнивать со значением в базе и не мучиться с плагинами в MySQL есть функция MD5().


Re: Хеш пароля - nonamepawn - 10.05.2015

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Что бы сравнивать со значением в базе и не мучиться с плагинами в MySQL есть функция MD5().
Спасибо, но не мог бы ты помочь построить запрос правильно по такой схеме

PHP код:
$hash md5md5$salt ) . md5$password ) ); 
PHP код:
Passing query SELECT `member_idFROM `core_membersWHERE `name` = 'Admin' AND `members_pass_hash` = MD5(MD5('0JTU7XJyyf56U2Rk8UcA8J').MD5('vfsdfgd1337')) | dd
[04:34:13CMySQLHandler::ProcessQueryThread() - Error will be triggered to OnQueryError() 



Re: Хеш пароля - Stepashka - 11.05.2015

pawn Код:
format(string, sizeof(string), "SELECT member_id FROM core_members WHERE name= '%s' AND members_pass_hash=MD5(CONCAT(MD5('%s'),MD5('%s')))", name, salt, password);
Если запрос вернул хоть одну строку, значит пользователь есть и пароль верный, если не одной, значит неверное или имя или пароль.


Re: Хеш пароля - nonamepawn - 11.05.2015

Пока не удалось достигнуть вершины.

PHP код:
    format(querysizeof(query), "SELECT `member_id` FROM `core_members` WHERE `name` = '%s' AND `members_pass_hash` = MD5(CONCAT(MD5('%s'), '.', MD5('%s')))"GetPlayerNameEx(playerid), PlayerData[playerid][pPassSalt], password);
    
mysql_function_query(connectionHandlequerytrue"OnQueryFinished""dd"playeridTHREAD_LOGIN); 
PHP код:
        case THREAD_LOGIN:
           {
            
cache_get_data(rowsfieldsconnectionHandle);
            if (!
rows)
            {
                 print(
"Пароль не верный");
            }
            else
            {
                print(
"Пароль верный");
            }
        } 
В базе пароль выглядит так:
Как то можно отследить конечный формат запроса принятый базой данной.

PHP код:
$2a$13$0JTU7XJyyf56U2Rk8UcA8.6/HnivemOUSjgfi2LX3hZ.c3prn0wFS 
PHP код:
ProcessQueryThread(OnQueryFinished) - Query was successful. (SELECT `member_idFROM `core_membersWHERE `name` = 'Admin' AND `members_pass_hash` = MD5(CONCAT(MD5('0JTU7XJyyf56U2Rk8UcA8J'), '.'MD5('vfrfhjd1337')))) 



Re: Хеш пароля - Stepashka - 11.05.2015

У тебя неверный код создания паролей, потому что это
Код:
$2a$13$0JTU7XJyyf56U2Rk8UcA8.6/HnivemOUSjgfi2LX3hZ.c3prn0wFS
не md5 хэш.


Re: Хеш пароля - nonamepawn - 11.05.2015

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
У тебя неверный код создания паролей, потому что это
Код:
$2a$13$0JTU7XJyyf56U2Rk8UcA8.6/HnivemOUSjgfi2LX3hZ.c3prn0wFS
не md5 хэш.
Следую из статьи с офф форума IP.Board это md5 хэш.
$2a$13$0JTU7XJyyf56U2Rk8UcA8.6/HnivemOUSjgfi2LX3hZ.c3prn0wFS - это из members_pass_hash

PHP код:
IP.Board stores members' passwords as a salted hash. Both the hash and the salt are stored in the database in the members table as members_pass_hash and members_pass_salt, respectively.
The hash is the md5 sum of the md5 sum of the salt concatenated to the md5 sum of the plaintext password. Expressed in PHP code, this is as follows:
$hash = md5( md5( $salt ) . md5( $password ) );
Where:
    $hash is the value stored in the database column members_pass_hash.
    $salt is the value stored in the database column members_pass_salt.
    $password is the plaintext password.
The salt, is a string of 5 random characters including letters, numbers and symbols (specifically, ASCII characters 33-126, excluding 92). You can easily generate a salt using the IPSMember::generatePasswordSalt() method.