1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

1.5.1 (101) [PHP, MySql]БД, шифрование пароля

Тема в разделе 'PW Вопросник', создана пользователем EugeneS, 24 май 2016.

  1. TopicStarter Overlay

    EugeneS Пользователи

    Сообщения:
    15
    Лайки:
    0
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    SCTEAM
    Страна:
    Russian Federation Russian Federation
    Ладно это уже не главное, с этим что нибудь придумаю. Огромное спасибо за разъяснение с md5. Я даже не знал что там есть второе значение, кроме самого текста.
  2. Гадес ОРБИТАЛЬНЫЙ ПОДЖИГАТЕЛЬ Old school Пользователи Ты здесь Господи? Это я, Дин Винчестер

    Сообщения:
    544
    Лайки:
    354
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    DeBalance Art Team
    Страна:
    Russian Federation Russian Federation
    Не второй, а третий параметр.
  3. TopicStarter Overlay

    EugeneS Пользователи

    Сообщения:
    15
    Лайки:
    0
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    SCTEAM
    Страна:
    Russian Federation Russian Federation
    Если уж правильно то не значение и не параметр, а аргумент.
    с php.net:
    PHP:
    string md5 string $str [, bool $raw_output false ] )
    Вопрос, где тут 3й параметр?
    1ый - текст ну и 2ой про который я говорил в посте #21
    Или я опять чего то не знаю?
    function.md5.php (Не реклама)
  4. werewolf Old school Пользователи

    Сообщения:
    507
    Лайки:
    158
    Пол:
    Мужской
    Репутация:
    1
    Какая реклама? Программирования на php? :D Извините, не удержался, это всё равно что google рекламировать)))
    А Гадес, наверное, увидел в
    PHP:
    md5($login.$pass,false);
    запятую вместо точки. Ему статус позволяет))
    Последнее редактирование: 27 май 2016
    EugeneS нравится это.
  5. salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    1) Ставим полю с паролем тип BINARY (16)
    2) ?????
    3) PROFIT!!!
    EugeneS нравится это.
  6. TopicStarter Overlay

    EugeneS Пользователи

    Сообщения:
    15
    Лайки:
    0
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    SCTEAM
    Страна:
    Russian Federation Russian Federation
    Не катит. Теряется часть пароля. 16 символом мало! + если так делаю - в клиенте не авторизироваться.
    Осталось только разобраться с кодировкой у PHP. MD5 отдает бинарный код с вопросиками � в то время когда из БД с указанием кодировки вытаскивается нормальный код. Есть идеи?
  7. salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    1) Это не символы, а байты.
    2) Ничего там не мало. Размер хеша 128 бит == 16 байт
  8. TopicStarter Overlay

    EugeneS Пользователи

    Сообщения:
    15
    Лайки:
    0
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    SCTEAM
    Страна:
    Russian Federation Russian Federation
    Но все же, теряется же часть пароля. Выставляю 32 появляются нули - по сути на который насрать. Так хоть пароль не режется, но в клиенте авторизация перестает работать.
    Меня интересует именно функция md5 почему она отдает вопросики??? Хотя по сути указана кодировка UTF-8. Уже не лезем к БД уже сам PHP не понятен. Код выкладываю:
    PHP:
    <?php
    mb_internal_encoding
    ("UTF-8"); //Указал кодировку для PHP
    $link mysql_connect('localhost''root''5574793') or die ("Невозможно подключиться");
    mysql_select_db ("pw") or die ("Невозможно открыть $db");
    mysql_query("SET NAMES 'utf8'"); //Если убрать будут вопросики и все будет работать, но убирать нельзя.
    $query "SELECT * FROM users WHERE ID=\"48\"";
    $result mysql_query $query );
    $n mysql_num_rows $result );
    for ( 
    $i=0$i<$n$i++ )
    {
        
    $row mysql_fetch_array($result);
        
    $Salt md5($row[name].$row[idnumber], true);
        echo 
    "Хеш из БД: $row[passwd]<br>Логин: $row[name]<br>Пароль: $row[idnumber]<br>Сгенерированный хеш: $Salt<br>";
        if(
    $row[passwd] == $Salt) {
            echo 
    "Заебись";
        }
    }
    mysql_close($link);
    ?>
    Ответ:
  9. Гадес ОРБИТАЛЬНЫЙ ПОДЖИГАТЕЛЬ Old school Пользователи Ты здесь Господи? Это я, Дин Винчестер

    Сообщения:
    544
    Лайки:
    354
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    DeBalance Art Team
    Страна:
    Russian Federation Russian Federation
  10. salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    [​IMG]
    Donato Ferrante нравится это.
  11. werewolf Old school Пользователи

    Сообщения:
    507
    Лайки:
    158
    Пол:
    Мужской
    Репутация:
    1
    Не пойму, чего ещё надо, если дали все три варианта...
    Гадес нравится это.
  12. TopicStarter Overlay

    EugeneS Пользователи

    Сообщения:
    15
    Лайки:
    0
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    SCTEAM
    Страна:
    Russian Federation Russian Federation
    А вы вопрос читаете? Из бд получаю нормальный бинарный код, а через md5 генерируется бинарник со знаками вопросов, соответсвенно они не равны друг другу.
    Про то что хеш получается от пары логин+пароль - понял давно.
    Решение найдено:
    Функция mb_convert_encoding();
    PHP:
    $Salt mb_convert_encoding(md5($row[name].$row[idnumber], true),"UTF-8""binary");
  13. werewolf Old school Пользователи

    Сообщения:
    507
    Лайки:
    158
    Пол:
    Мужской
    Репутация:
    1
    Я читаю, написал это, потому что не помню чтобы у кого-то, кто писал ЛК, возникали подобные проблемы. Может дело в программисте, а не в "косяках" PHP?
    Это хорошо что решение найдено. Но я нигде не видел такого. То, что дал как пример alexdnepro, работает везде и выводится из БД обычным echo нормально, а у тебя нет. Очень странно. Но в любом случае, я рад, что решение нашлось.
  14. JoLan Команда форума Администратор AngeliCore Программист

    Сообщения:
    1.061
    Лайки:
    948
    Пол:
    Мужской
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    Может быть ещё вариант, что исходный файл в ANSI, а не UTF-8.
  15. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    На самом деле все проще, по дефолту кодировка коннекта в мускуль latin-1 или что-то в этом роде, если доставать хеш из базы в бинарном виде, то не надо перед запросом менять её на utf-8, и тогда все будет совпадать.
  16. Гадес ОРБИТАЛЬНЫЙ ПОДЖИГАТЕЛЬ Old school Пользователи Ты здесь Господи? Это я, Дин Винчестер

    Сообщения:
    544
    Лайки:
    354
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    DeBalance Art Team
    Страна:
    Russian Federation Russian Federation
    Тогда он все полученные данные из базы, кроме пароля, конвертил бы в утф8 хД
  17. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Не обязательно, можно это делать в 3 запроса. В первом получаем только пароль, во втром ставит кодировку и в третьем получаем все остальное.
  18. salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Кодировка здесь не играет роли, просто у автора темы "талант" все просрать.

    Код:
    [​IMG]

    Результат:
    [​IMG]

    Таблица:
    [​IMG]

    4 строка на 1 скрине: charset=utf8
  19. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    В дефолтном виде, тип поля строковой, и там кодировка имеет значение, я привел пример, который лично пробовал и проверял.
Черновик сохранён Черновик удалён
Similar Threads
  1. k0nst
    Ответов:
    9
    Просмотров:
    2.250
  2. irka
    Ответов:
    6
    Просмотров:
    2.570
  3. salitypw
    Ответов:
    6
    Просмотров:
    2.778
  4. Tыщ
    Ответов:
    1
    Просмотров:
    3.878
  5. Skotch
    Ответов:
    28
    Просмотров:
    8.005
Загрузка...

Поделиться этой страницей