Вопрос по шифрованию паролей -
warlock02 - 06.03.2013
Всем привет. Возникла такая проблема, не могу заставить шифровать пароли в самп как это делается в SMF(последняя версия). Знаю что там много раз перехешируется в sha1 + salt. Может кто-то уже знает готовый алгоритм или может помочь с этим вопросом. С меня +REP.
Re: Вопрос по шифрованию паролей -
eakwarp - 06.03.2013
Вам не кажется, что лучшим решением будет - не использовать корявый SMF, а?
Re: Вопрос по шифрованию паролей -
Splav - 06.03.2013
Зачем вообще пароли шифровать?
Re: Вопрос по шифрованию паролей -
Bombo - 06.03.2013
Если на сервере есть MySQL - можно так:
SELECT MD5("пароль");
Re: Вопрос по шифрованию паролей -
Jon_De - 06.03.2013
Quote:
Originally Posted by warlock02
Всем привет. Возникла такая проблема, не могу заставить шифровать пароли в самп как это делается в SMF(последняя версия). Знаю что там много раз перехешируется в sha1 + salt. Может кто-то уже знает готовый алгоритм или может помочь с этим вопросом. С меня +REP.
|
sha1(strtolower($username).$pass) пишут что вот так
Re: Вопрос по шифрованию паролей -
mihan-888 - 06.03.2013
Шифруется он так (Файл Load.php - 371 строка)
PHP код:
$check = sha1($user_settings['passwd'] . $user_settings['password_salt']) == $password;
Соль генерируется так (Файл LogInOut.php - строка 408 )
PHP код:
$user_settings['password_salt'] = substr(md5(mt_rand()), 0, 4);
Т.е. при регистрации соль генерируете как 4 случайных символа
Re: Вопрос по шифрованию паролей -
warlock02 - 06.03.2013
Quote:
Originally Posted by mihan-888
Шифруется он так (Файл Load.php - 371 строка)
PHP код:
$check = sha1($user_settings['passwd'] . $user_settings['password_salt']) == $password;
Соль генерируется так (Файл LogInOut.php - строка 408 )
PHP код:
$user_settings['password_salt'] = substr(md5(mt_rand()), 0, 4);
|
вот, кажется оно, спасибо.
Все кто дал более или менее вменяемый ответ получил +.
Re: Вопрос по шифрованию паролей -
mihan-888 - 06.03.2013
Не нашёл в павн функции sha1, поэтому вроде можно сразу в запросе писать WHERE `password` = SHA1($password.$salt)
Re: Вопрос по шифрованию паролей -
warlock02 - 07.03.2013
Quote:
Originally Posted by mihan-888
Не нашёл в павн функции sha1, поэтому вроде можно сразу в запросе писать WHERE `password` = SHA1($password.$salt)
|
В запросе можно, только я не знаю как записать вот это $password.$salt в pawn-коде.
Re: Вопрос по шифрованию паролей -
warlock02 - 07.03.2013
Еще раз всем привет. По ответу написанному выше, попробовал написать запрос в pawn, вот код запроса:
pawn Код:
new bigstr[512];
format(bigstr, sizeof(bigstr), "UPDATE `smf_members` SET `passwd`=SHA1('%s'.'password_salt') WHERE '%s'=`member_name`",keytmp, playername);
mysql_query(bigstr);
Вот что выдает в итоге debug.txt:
pawn Код:
CMySQLHandler::Query(UPDATE `smf_members` SET `passwd`=SHA1('test1'.'password_salt') WHERE 'Clifford_Smith'=`member_name`) - An error has occured. (Error ID: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.'password_salt') WHERE 'Clifford_Smith'=`member_name`' at line 1)
Как объединить строки чтобы результат был идентичен такому php-коду: sha1($user_settings['passwd'] . $user_settings['password_salt'])?