Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 12
  1. #1
    Аватар для _lizard
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±

    Различия в хэшировании md5

    Появилась проблема. Допустим, у меня есть сочетание "тест_00110", которое мне нужно записать в базу данных в зашифрованном виде (md5).

    Выполняю запрос:
    PHP код:
    mysql_query(mysql_connection"INSERT INTO `table` (`hash_text`) VALUES (MD5('тест_00110'))"); 
    Что появилось в базе данных: a2a567b882221b794b8b6e54fb672808

    Ввожу тот же текст (тест_00110) в сайты онлайн-хэширования, все они выводят это: 9491092E40E23C1960AC95BCBEF0ED18

    Не могу понять, почему хэши получаются разные..
    Последний раз редактировалось _lizard; 12.07.2016 в 18:29.

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

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±
    Сделал вместо MD5 в запросе SHA2 - тоже самое, сайты показывают совершенно другой хэш, а также заметил, что такая же ситуация с функцией SHA256_PassHash..

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

    Статус
    Оффлайн
    Регистрация
    09.02.2014
    Сообщений
    93
    Репутация:
    8 ±
    Только что попробовал - все работает правильно, на выходе получается хэш 9491092e40e23c1960ac95bcbef0ed18
    Сам сейчас использую SHA-2 с солью, все работает хорошо.

  4. #4
    Аватар для _lizard
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±
    Может я делаю что-то не так?

    PHP код:
    new query[200], string[11] = "это_тест01";
    mysql_format(mysql_connectionquerysizeof(query), "INSERT INTO `accounts` (`password`) VALUES (MD5('%s'))"string);
    mysql_function_query(mysql_connectionqueryfalse""""); 
    База данных:
      Открыть/закрыть


    Сайты онлайн-хэширования:
      Открыть/закрыть



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

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Твоя строка в MySQL идёт в кодировке cp1251, на сайтах онлайн хеширования, как правило, используется UTF-8.
    Это можно легко проверить зайдя на один из этих сайтов и принудительно установить кодировку cp1251 (Windows-1251), результат хэширования строки "это_тест01" будет аналогичным результату твоего запроса в БД.

  6. #6
    Аватар для _lizard
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Твоя строка в MySQL идёт в кодировке cp1251, на сайтах онлайн хеширования, как правило, используется UTF-8.
    Это можно легко проверить зайдя на один из этих сайтов и принудительно установить кодировку cp1251 (Windows-1251), результат хэширования строки "это_тест01" будет аналогичным результату твоего запроса в БД.
    Эм, кодировка должна меняться в функционале сайтов или браузере? затупил(

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

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от _lizard Посмотреть сообщение
    Эм, кодировка должна меняться в функционале сайтов или браузере? затупил(
    Можешь поменять в браузере:



    Чтобы исправить в скрипте, тебе нужно установить кодировку UTF-8 с БД с помощью функции mysql_set_charset.

  8. #8
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Чтобы исправить в скрипте, тебе нужно установить кодировку UTF-8 с БД с помощью функции mysql_set_charset.
    Я думаю лучше этого не делать, ибо потом будет не соответствие кодировок. Возникнут вопросы типа "Почему русские шрифты отображаются как карякулы" и т.д.

    По теме:

    Как уже ziggi ответил это из за разной кодировки. У тебя обязательно должны совпадать хэши с бд и с сайтами?
    Последний раз редактировалось Geebrox; 13.07.2016 в 14:25.
    Респект:
    @DeimoS
    @ziggi
    @Daniel_Cortez

  9. #9
    Аватар для _lizard
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±
    Цитата Сообщение от Geebrox Посмотреть сообщение
    У тебя обязательно должны совпадать хэши с бд и с сайтами?
    Ну желательно, имеется связь с сайтом

  10. #10
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    Цитата Сообщение от _lizard Посмотреть сообщение
    Ну желательно, имеется связь с сайтом
    тогда напиши для сайта php скрипт, который будет получать с базы пароль с win1251 кодировкой потом дехэш, далее изменит кодировку результата в UTF-8
    Респект:
    @DeimoS
    @ziggi
    @Daniel_Cortez

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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