Вопрос по шифрованию паролей
#1

Всем привет. Возникла такая проблема, не могу заставить шифровать пароли в самп как это делается в SMF(последняя версия). Знаю что там много раз перехешируется в sha1 + salt. Может кто-то уже знает готовый алгоритм или может помочь с этим вопросом. С меня +REP.
Reply
#2

Вам не кажется, что лучшим решением будет - не использовать корявый SMF, а?
Reply
#3

Зачем вообще пароли шифровать?
Reply
#4

Если на сервере есть MySQL - можно так:
SELECT MD5("пароль");
Reply
#5

Quote:
Originally Posted by warlock02
Посмотреть сообщение
Всем привет. Возникла такая проблема, не могу заставить шифровать пароли в самп как это делается в SMF(последняя версия). Знаю что там много раз перехешируется в sha1 + salt. Может кто-то уже знает готовый алгоритм или может помочь с этим вопросом. С меня +REP.
sha1(strtolower($username).$pass) пишут что вот так
Reply
#6

Шифруется он так (Файл 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()), 04); 
Т.е. при регистрации соль генерируете как 4 случайных символа
Reply
#7

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()), 04); 
вот, кажется оно, спасибо.
Все кто дал более или менее вменяемый ответ получил +.
Reply
#8

Не нашёл в павн функции sha1, поэтому вроде можно сразу в запросе писать WHERE `password` = SHA1($password.$salt)
Reply
#9

Quote:
Originally Posted by mihan-888
Посмотреть сообщение
Не нашёл в павн функции sha1, поэтому вроде можно сразу в запросе писать WHERE `password` = SHA1($password.$salt)
В запросе можно, только я не знаю как записать вот это $password.$salt в pawn-коде.
Reply
#10

Еще раз всем привет. По ответу написанному выше, попробовал написать запрос в 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'])?
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)