MySQL 5 хэш - исходник. Где взять?

Тема в разделе "WASM.CRYPTO", создана пользователем 01478520, 18 сен 2007.

  1. 01478520

    01478520 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2007
    Сообщения:
    39
    Где взять алгоритм хэширования пароля MySQL 5? (кроме как выдирать из исходников MySQL)
     
  2. Ruptor

    Ruptor Marcos el Ruptor

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    167
    Адрес:
    Australia
    a razve vidrat yego iz MySQL sources - eto tak trudno?

    Ruptor
     
  3. 01478520

    01478520 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2007
    Сообщения:
    39
    Ruptor
    Для меня да, так как выдирать придётся из UNIX версий+ найти эту саму процедуру.
    А спрашиваю может у кого есть чтоб зря не парится...
     
  4. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    У меня есть, в исходниках MySql
     
  5. Proteus

    Proteus Member

    Публикаций:
    0
    Регистрация:
    19 июн 2004
    Сообщения:
    344
    Адрес:
    Russia
  6. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    01478520
    ты имееш ввиду пароли, которые форумы хранят в базе данных?
     
  7. 01478520

    01478520 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2007
    Сообщения:
    39
    twgt
    Да. такого вида:
    0c7f3d25faf41a4217329ab9420c591bc3c52041

    Вычисляется по SHA1 алгоритму
    + random seed, и ещё четотам
     
  8. 01478520

    01478520 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2007
    Сообщения:
    39
    Proteus
    mysql.inc -> void hash_password(dword *result,char *password);

    а этой функции нетУ?
     
  9. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Md5. И хватит ломать уже :)
     
  10. 01478520

    01478520 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2007
    Сообщения:
    39
    twgt
    нет, это SHA1. Я не ломать... я строить...
    Proteus
    censored
    Такие файлы нада:
    (Сорсы для Win32)

    <my_global.h>
    <my_sys.h>
    <m_string.h>
    <sha1.h>
    "mysql.h"

    +
    password.c
    PS: у кого есть сурсы, дайте плиз. а то впадлу на дылапе 17м качать... Ж)
     
  11. Proteus

    Proteus Member

    Публикаций:
    0
    Регистрация:
    19 июн 2004
    Сообщения:
    344
    Адрес:
    Russia
    Упс... я немного не то выложил))) У меня так мозг заезжен поледние дни.
    это для авторизации сырец был.
     
  12. 01478520

    01478520 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2007
    Сообщения:
    39
    Proteus
    держись... Ж)
     
  13. RElf

    RElf New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2004
    Сообщения:
    159
    John the Ripper умеет подбирать пароли к MySQL
    http://www.openwall.com/john/
     
  14. 01478520

    01478520 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2007
    Сообщения:
    39
    Всё есть, но... Кто разбирал функции octet2hex, hex2octet? что именно они делают?
     
  15. Proteus

    Proteus Member

    Публикаций:
    0
    Регистрация:
    19 июн 2004
    Сообщения:
    344
    Адрес:
    Russia
    Код (Text):
    1. char NEAR _dig_vec_upper[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    2.  
    3.   for (; str != str_end; ++str)
    4.   {
    5.     *to++= _dig_vec_upper[((uchar) *str) >> 4];
    6.     *to++= _dig_vec_upper[((uchar) *str) & 0x0F];
    7.   }
    Данные в hex строку преобразуют. И обратно...
     
  16. 01478520

    01478520 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2007
    Сообщения:
    39
    Proteus
    Да, то есть простое преобразование к верхнему регистру. А пароль,ИМХО, хэшируется так:
    sha1(password) = result-> sha1(result) = хэш, (или sha1(sha1(password))=хэш) преобразуемый к верхнему регистру...
    но вот хэш пароля MySQL 5 в PassworPro отличается от sha1(sha1(password)). чёто не пойму где истина...
    ЗЫ: отталкиваюсь от функции make_scrambled_password в файле password.c, там пишется что результат функции это результат mysql функции password()...
     
  17. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    Интересно, как это у тебя не получается? :)

    Идем сюда: http://dev.mysql.com/doc/refman/5.0/en/password-hashing.html. Там видим такие строки:
    Код (Text):
    1. +-------------------------------------------+
    2. | PASSWORD('mypass')                        |
    3. +-------------------------------------------+
    4. | *6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4 |
    5. +-------------------------------------------+
    Ок, берем калькулятор SHA1 (или пишем программу на три строки) и получаем такой результат:
    Код (Text):
    1. SHA1("mypass")=e727d1464ae12436e899a726da5b2f11d8381b26
    2. SHA1(e727d1464ae12436e899a726da5b2f11d8381b26)=6c8989366eaf75bb670ad8ea7a7fc1176a95cef4
    Возможно ты выполняешь преобразование результата хеша в строку.. так это не надо делать. Второй раз нужно хешировать _бинарные_ данные.
     
  18. 01478520

    01478520 New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2007
    Сообщения:
    39
    flankerx
    Ага... уже допёр... спасибо