URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 4150
[ Назад ]

Исходное сообщение
"/etc/shadow в нормальный MD5"

Отправлено craZzZy , 23-Фев-09 17:18 
Есть файл /etc/shadow с паролями пользователей от почтового сервера. Зашифрованы они все с MD5 (имеют $1$ в начале). Пытался гуглить но так и не нашел как же образуется символьная строка шифрованного пароля из хэша MD5, а нужно эти пароли переделать в нормальный MD5 дайджест чтобы использовать их в базе данных mySQL (планирую использовать функцию MD5()). Посоветуйте что-нибудь дельное по этому поводу, заранее спасибо!!!

Содержание

Сообщения в этом обсуждении
"/etc/shadow в нормальный MD5"
Отправлено Andrey Mitrofanov , 24-Фев-09 10:15 
>с MD5 (имеют $1$ в начале). Пытался гуглить но так и
>не нашел как же образуется символьная строка шифрованного пароля из хэша

man 5 shadow
man 3 crypt


"/etc/shadow в нормальный MD5"
Отправлено craZzZy , 24-Фев-09 12:15 
>>с MD5 (имеют $1$ в начале). Пытался гуглить но так и
>>не нашел как же образуется символьная строка шифрованного пароля из хэша
>
>man 5 shadow
>man 3 crypt

Вот не люблю таких людей которые думаю что другие не знают о наличии man'ов. Вы сами то пробовали открывать эти маны? Увидели там что-нибудь конкретное? Узнали как из строки $1$сольадальшекрокозябра сделать 16 байт md5 хэша? Так вот, нечего тогда давать такие ответы...


"/etc/shadow в нормальный MD5"
Отправлено NuclearCat , 24-Фев-09 12:30 
>>>с MD5 (имеют $1$ в начале). Пытался гуглить но так и
>>>не нашел как же образуется символьная строка шифрованного пароля из хэша
>>
>>man 5 shadow
>>man 3 crypt
>
>Вот не люблю таких людей которые думаю что другие не знают о
>наличии man'ов. Вы сами то пробовали открывать эти маны? Увидели там
>что-нибудь конкретное? Узнали как из строки $1$сольадальшекрокозябра сделать 16 байт md5
>хэша? Так вот, нечего тогда давать такие ответы...

Что за истерика? Там очень даже понятно все написано. Я именно оттуда и понял, что есмь salt, и где сам хеш. Естественно нужно еще почитать что такое salt, и что такое собственно хеш.


"/etc/shadow в нормальный MD5"
Отправлено craZzZy , 24-Фев-09 14:40 
>[оверквотинг удален]
>>>man 3 crypt
>>
>>Вот не люблю таких людей которые думаю что другие не знают о
>>наличии man'ов. Вы сами то пробовали открывать эти маны? Увидели там
>>что-нибудь конкретное? Узнали как из строки $1$сольадальшекрокозябра сделать 16 байт md5
>>хэша? Так вот, нечего тогда давать такие ответы...
>
>Что за истерика? Там очень даже понятно все написано. Я именно оттуда
>и понял, что есмь salt, и где сам хеш. Естественно нужно
>еще почитать что такое salt, и что такое собственно хеш.

Маны это конечно хорошо, но как я и говорил в них по этому поводу конкретного ничего нету. Для тех кто не понял уточню проблему: есть пароли вида $1$+salt+hash , известно что хэш получен на основе алгоритма md5. Задача получить из строки hash, которая здесь не является md5 хэшем, 16 байт хэша md5. Т.е. меня интересует алгоритм, с помощью которого создается строка hash, методы преобразования строки hash до 16 байт md5. Сразу скажу, для тех кто хочет написать "Кури исходники crypt", я их обязательно покурю, если здесь никто не ответит, ведь, я думаю, кто-нибудь уже сталкивался с данной траблой...


"/etc/shadow в нормальный MD5"
Отправлено angra , 24-Фев-09 16:00 
Ну из man 3 crypt вы могли бы почерпнуть принцип работы crypt, особенно роль salt, и понять, что задача по переносу в другое приложение, не использующее salt, изначально обречена на провал.

"/etc/shadow в нормальный MD5"
Отправлено craZzZy , 24-Фев-09 17:19 
>Ну из man 3 crypt вы могли бы почерпнуть принцип работы crypt,
>особенно роль salt, и понять, что задача по переносу в другое
>приложение, не использующее salt, изначально обречена на провал.

((( Дайте мне стену я буду биться об нее головой! Что вы со мной так как будто я не читал ман, ЧИТАЛ я его и в ПЕРВУЮ ОЧЕРЕДЬ, про salt все прекрасно знаю и понимаю принципы его работы, с md5 тоже дело имел, как то даже оптимизированную библиотеку на ассемблере делал реализующую этот алгоритм. Использование для проверки пароля пользователя в БД mySQL возможно самый простой пример:


SELECT 1 FROM access WHERE user='%u' AND hash=MD5(CONCAT('%p', salt));

Вопрос в следующем: возможно ли из строки хэша в файле /etc/shadow получить md5 hash, который возможно бы было использовать для проверки пароля подобным образом (как в примере) и есть ли у кого-нибудь описание алгоритма делающего такое преобразование, или хотя бы описание алгоритма как вычисляется этот hash.


"/etc/shadow в нормальный MD5"
Отправлено angra , 24-Фев-09 19:01 
Ну тогда смотрите исходники crypt так как реализации могут различаться и всем программам рекомендуется вызывать системную библиотеку, а не пытаться сделать что-то самостоятельно. Если нужна проверка в мускуле, то воспользуйтесь encrypt она использует системный crypt и получите те же хеши, аналогично для проверки существующих
select encrypt('plain','$1$salt');
+--------------------------------+
| encrypt('plain','$1$salt')     |
+--------------------------------+
| $1$salt$hNT0h3u4/siQo8dZQu7Ll. |
+--------------------------------+

select encrypt('plain','$1$salt$hNT0h3u4/siQo8dZQu7Ll.');
+---------------------------------------------------+
| encrypt('plain','$1$salt$hNT0h3u4/siQo8dZQu7Ll.') |
+---------------------------------------------------+
| $1$salt$hNT0h3u4/siQo8dZQu7Ll.                    |
+---------------------------------------------------+

Ну и наконец чисто перловая (за исключением собственно Digest::MD5) реализация алгоритма системного md5 crypt
http://cpansearch.perl.org/src/LUISMUNOZ/Crypt-PasswdMD5-1.3...
Из нее можно увидеть какое количество преобразований делается помимо вызова md5 хеширования.


"/etc/shadow в нормальный MD5"
Отправлено craZzZy , 24-Фев-09 20:04 
>[оверквотинг удален]
>+---------------------------------------------------+
>| $1$salt$hNT0h3u4/siQo8dZQu7Ll.          
>         |
>+---------------------------------------------------+
>
>Ну и наконец чисто перловая (за исключением собственно Digest::MD5) реализация алгоритма системного
>md5 crypt
>http://cpansearch.perl.org/src/LUISMUNOZ/Crypt-PasswdMD5-1.3...
>Из нее можно увидеть какое количество преобразований делается помимо вызова md5 хеширования.
>

Спасибо за ответ, angra! На функцию encrypt() я уже заглядывался, вот только не мог получить ту же шифрованную строку что и в shadow, но по Вашему ответу я все понял. Еще раз спасибо!


"/etc/shadow в нормальный MD5"
Отправлено LS , 25-Фев-09 14:56 
>[оверквотинг удален]
>+---------------------------------------------------+
>| $1$salt$hNT0h3u4/siQo8dZQu7Ll.          
>         |
>+---------------------------------------------------+
>
>Ну и наконец чисто перловая (за исключением собственно Digest::MD5) реализация алгоритма системного
>md5 crypt
>http://cpansearch.perl.org/src/LUISMUNOZ/Crypt-PasswdMD5-1.3...
>Из нее можно увидеть какое количество преобразований делается помимо вызова md5 хеширования.
>

умничка! +10.

PS а за такую постановку вопроса и развитие темы я бы автора на месте пристрелил.


"/etc/shadow в нормальный MD5"
Отправлено craZzZy , 26-Фев-09 17:22 
>PS а за такую постановку вопроса и развитие темы я бы автора
>на месте пристрелил.

Согласен (((



"/etc/shadow в нормальный MD5"
Отправлено Pahanivo , 26-Фев-09 17:53 
может уже поздна и я устал - но помоему вы херню несете ))
какая в зопу разница как представлен хеш - с сальтом или без, это хеш и чтобы получить в другом виде нужен оригинальный плейн текст