Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5
  1. #1
    Аватар для Mist
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.12.2015
    Сообщений
    14
    Репутация:
    0 ±

    SHA256_PassHash Хеширование паролей

    Можете помочь с хешированием паролей, на регистрации Diemos`a уже очень много времени сижу никак не могу сделать хеш. паролей.
    Я читал все темы где Daniel рассказывал о функции, я делал так: генирировал соль
    PHP код:
    stock generate_saltsalt[] ) {
            new 
    generated[64];
            new 
    sample[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

            for( new 
    chch sizeof(generated); ch++ ) {
                    
    generated[ch] = sample[random(sizeof(sample) - 1)];
            }

            
    strmid(saltgenerated06565);
            return 
    true;

    Но почему-то она генерировалась, но не записывалась в базу данных хорошо я сделал так
    PHP код:
    SHA256_PassHash(inputtext""pInfo[playerid][pPassword], 64
    то есть без соли.
    В общем помогите сделать хеш. паролей на примере регистрации от Diemos. Так же разъясните как вы это сделали.
    Еще вопрос в том, что нужно ли это делать? Воспользоваться Whirlpool, или SHA256, так как sha256 можно декодировать обратно http://md5decrypt.net/en/Sha256/

  2. #2
    Аватар для Nurick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.04.2014
    Адрес
    Уфа, Россия
    Сообщений
    319
    Репутация:
    52 ±
    PHP код:
    native WP_Hashbuffer[], len, const str[] ); 
    В диалог регистрации:
    PHP код:
    WP_HashpInfoplayerid ][ pPassword ], 129inputtext ); 
    В диалог авторизации:
    PHP код:
    new hash_function129 ];
    WP_Hashhash_functionsizeofhash_function ), inputtext );
    if( !
    strcmphash_functionpInfoplayerid ][ pPassword] ) )
    {
            
    /*............*/


  3. #3
    Аватар для Mist
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.12.2015
    Сообщений
    14
    Репутация:
    0 ±
    Спасибо. Не знаешь как это сделать на SHA256 или Whirlpool лучше?

  4. #4
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Mist Посмотреть сообщение
    Можете помочь с хешированием паролей, на регистрации Diemos`a уже очень много времени сижу никак не могу сделать хеш. паролей.
    Я читал все темы где Daniel рассказывал о функции, я делал так: генирировал соль
    PHP код:
    stock generate_saltsalt[] ) {
            new 
    generated[64];
            new 
    sample[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

            for( new 
    chch sizeof(generated); ch++ ) {
                    
    generated[ch] = sample[random(sizeof(sample) - 1)];
            }

            
    strmid(saltgenerated06565);
            return 
    true;

    Но почему-то она генерировалась, но не записывалась в базу данных хорошо я сделал так
    PHP код:
    SHA256_PassHash(inputtext""pInfo[playerid][pPassword], 64
    то есть без соли.
    В общем помогите сделать хеш. паролей на примере регистрации от Diemos. Так же разъясните как вы это сделали.
    Еще вопрос в том, что нужно ли это делать? Воспользоваться Whirlpool, или SHA256, так как sha256 можно декодировать обратно http://md5decrypt.net/en/Sha256/
    Декодировать обратно (по базе данных хэшей) можно всё, именно поэтому нужно использовать соль.

    Показывай как ты записывал соль в БД, этот процесс не должен отличаться от записи обычной строки.

  5. #5
    Аватар для Jonick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.12.2014
    Сообщений
    7
    Репутация:
    0 ±
    На примере регистрации от Deimos'a
    Вместо salt свою соль, например: "34kjls54d7c", либо генерируй под каждого игрока персональную соль
    В dRegister перед созданием аккаунта
    PHP код:
    SHA256_PassHash(inputtextsaltpInfo[playerid][pPassword], 64); 
    В dLogin вместо проверки пароля
    PHP код:
    if(isValidPassword(inputtextpInfo[playerid][pPassword]) == 1
    IsValidPassword:
    PHP код:
    stock isValidPassword(password[], hash[])
    {
        new 
    mysqlpassword[65];
        
    SHA256_PassHash(passwordsaltmysqlpassword64);
        if(!
    strcmp(mysqlpasswordhash)) return true;
        else return 
    false;

    И главное не забудь увеличить
    PHP код:
    pInfo[playerid][pPassword
    и в моде, и в базе данных, и в различных запросах

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •