Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Есть ли метод узнать какое слово было преобразовано при md5 / 16 сообщений из 16, страница 1 из 1
25.02.2005, 17:37
    #32934287
Urolog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
md5??
...
Рейтинг: 0 / 0
25.02.2005, 18:03
    #32934350
hell
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
Хотите правильного ответа?
-Нет.


"The CBO without stats is like a morning without coffee." T.Kyte
...
Рейтинг: 0 / 0
25.02.2005, 18:11
    #32934370
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
Можно методом перебора. Чем длиннее слово, тем меньше шансов дождаться результата.....
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
25.02.2005, 18:34
    #32934427
kaban_nik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
Это односторонне шифрование... В этом и вся фишка, чтобы нельзя было расшифровать...Может быть не однос слово с несколько... даже если добавить один символ то хеш сторка полностью измесниться... не парься..
...
Рейтинг: 0 / 0
25.02.2005, 18:41
    #32934438
hell
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
4m@t!cМожно методом перебора. Чем длиннее слово, тем меньше шансов дождаться результата.....
----------------------------------------
Артисты не приехали, приехали цыгане

Не факт, что подобранное короткое слово будет верным. Иначе можно было бы сжать любую информацию в N бит
...
Рейтинг: 0 / 0
25.02.2005, 18:54
    #32934461
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
Такая формулировка ИМХО точнее :
Методом перебора можно найти строку, дающую такой же хеш, как и исходный.
Поэтому рекомендуется пароль хешировать так :
$hash_pass = md5($password.$random_string);
Ну или HMAC-MD5 , HMAC-SHA1 , что более надежно с точки зрения криптографии.
В ПХП можно использовать http://pear.php.net/package/Crypt_HMAC/
...
Рейтинг: 0 / 0
25.02.2005, 19:21
    #32934500
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
hell, cто процентов, что не факт...
Я не подумал об этом....
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
26.02.2005, 03:04
    #32934698
CM Hungry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
Макс М.Такая формулировка ИМХО точнее :
Методом перебора можно найти строку, дающую такой же хеш, как и исходный.
Поэтому рекомендуется пароль хешировать так :
$hash_pass = md5($password.$random_string);
Ну или HMAC-MD5 , HMAC-SHA1 , что более надежно с точки зрения криптографии.
В ПХП можно использовать http://pear.php.net/package/Crypt_HMAC/
SHA1 уже не рекомендуется.
...
Рейтинг: 0 / 0
26.02.2005, 13:30
    #32934851
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
а я вообще стараюсь применять не MD5 а GOST,так как и код там длиннее получатся и подделать труднее а перебором вообще замучашся
...
Рейтинг: 0 / 0
26.02.2005, 15:22
    #32934908
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
CM Hungry Макс М.Такая формулировка ИМХО точнее :
Методом перебора можно найти строку, дающую такой же хеш, как и исходный.
Поэтому рекомендуется пароль хешировать так :
$hash_pass = md5($password.$random_string);
Ну или HMAC-MD5 , HMAC-SHA1 , что более надежно с точки зрения криптографии.
В ПХП можно использовать http://pear.php.net/package/Crypt_HMAC/
SHA1 уже не рекомендуется.
Во-первых не все так страшно. 2^69 - это тоже большое число, вполне достаточное для обычных сайтов, на которых не крутятся большие финансы
Во-вторых, я писал HMAC-SHA1, а не чистый SHA1

GOST хорош, но в ПХП для него отдельный модуль нужен - mhash
...
Рейтинг: 0 / 0
28.02.2005, 12:05
    #32936098
Urolog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
Макс М.Такая формулировка ИМХО точнее :
Методом перебора можно найти строку, дающую такой же хеш, как и исходный.
Поэтому рекомендуется пароль хешировать так :
$hash_pass = md5($password.$random_string);
Ну или HMAC-MD5 , HMAC-SHA1 , что более надежно с точки зрения криптографии.
В ПХП можно использовать http://pear.php.net/package/Crypt_HMAC/


Вот вы написали $random_string, я так понял что это просто будет обычная строка одинаковая для всех паролей, если же просто ее брать случайно для каждой, то потом не сможем ничего с ней сравнивать. Или что я не прав.
...
Рейтинг: 0 / 0
28.02.2005, 12:30
    #32936170
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
Urolog Макс М.Такая формулировка ИМХО точнее :
Методом перебора можно найти строку, дающую такой же хеш, как и исходный.
Поэтому рекомендуется пароль хешировать так :
$hash_pass = md5($password.$random_string);
Ну или HMAC-MD5 , HMAC-SHA1 , что более надежно с точки зрения криптографии.
В ПХП можно использовать http://pear.php.net/package/Crypt_HMAC/


Вот вы написали $random_string, я так понял что это просто будет обычная строка одинаковая для всех паролей, если же просто ее брать случайно для каждой, то потом не сможем ничего с ней сравнивать. Или что я не прав.
если данные о пароле хранятся в БД, то туда добавляют поле (назовем его hash_key) в котором хранят эту случайную строку. Строка для всех пользователей разная
...
Рейтинг: 0 / 0
28.02.2005, 12:32
    #32936180
hell
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
Очевидно, $random_string надо хранить вместе с кэшем.

При этом это позволит избежать атаки по уже сформированному словарю "пароль-md5", но не позволит избежать брут-форса. Так же будет невозможно выявить одинаковые пароли сравнивая хэши


"The CBO without stats is like a morning without coffee." T.Kyte
...
Рейтинг: 0 / 0
28.02.2005, 12:36
    #32936191
Urolog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
Макс М. Urolog Макс М.Такая формулировка ИМХО точнее :
Методом перебора можно найти строку, дающую такой же хеш, как и исходный.
Поэтому рекомендуется пароль хешировать так :
$hash_pass = md5($password.$random_string);
Ну или HMAC-MD5 , HMAC-SHA1 , что более надежно с точки зрения криптографии.
В ПХП можно использовать http://pear.php.net/package/Crypt_HMAC/


Вот вы написали $random_string, я так понял что это просто будет обычная строка одинаковая для всех паролей, если же просто ее брать случайно для каждой, то потом не сможем ничего с ней сравнивать. Или что я не прав.
если данные о пароле хранятся в БД, то туда добавляют поле (назовем его hash_key) в котором хранят эту случайную строку. Строка для всех пользователей разная

Так эта строка должна как я понял быть открытой, т.е. не захершированной, в противном случае невозможно будет ей воспользоваться, если так то ее же можно будет простомтреть обычным селектом.
...
Рейтинг: 0 / 0
28.02.2005, 12:56
    #32936259
hell
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
Да, открытой.

Ведь главная фича резком увеличении длины пароля за счет этой строки.

Т.е. гораздо больше вариантов, для желающих организовать у себя табличку соответствия "пароль-хэш"

"The CBO without stats is like a morning without coffee." T.Kyte
...
Рейтинг: 0 / 0
28.02.2005, 14:55
    #32936588
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Есть ли метод узнать какое слово было преобразовано при md5
Urolog Макс М. Urolog Макс М.Такая формулировка ИМХО точнее :
Методом перебора можно найти строку, дающую такой же хеш, как и исходный.
Поэтому рекомендуется пароль хешировать так :
$hash_pass = md5($password.$random_string);
Ну или HMAC-MD5 , HMAC-SHA1 , что более надежно с точки зрения криптографии.
В ПХП можно использовать http://pear.php.net/package/Crypt_HMAC/


Вот вы написали $random_string, я так понял что это просто будет обычная строка одинаковая для всех паролей, если же просто ее брать случайно для каждой, то потом не сможем ничего с ней сравнивать. Или что я не прав.
если данные о пароле хранятся в БД, то туда добавляют поле (назовем его hash_key) в котором хранят эту случайную строку. Строка для всех пользователей разная

Так эта строка должна как я понял быть открытой, т.е. не захершированной, в противном случае невозможно будет ей воспользоваться, если так то ее же можно будет простомтреть обычным селектом.
строка должна быть открытой в любом случае.
Ведь она тебе будет нужна для авторизации юзера.

Во-первых.
Несколько разных строк могут дать одинаковый хеш. Поэтому, если ты в базе хранишь просто md5($password), то при авторизации можно использовать не только реальный $password, но и любую строку, которая даст такой-же хеш.
(на самом деле такие строки с одним хешем еще поискать надо).
Если же ты будешь с паролем хешировать еще и какую-то строку, то взломщику надо будет подобрать именно строку равную $password.$random_string - а на это надо больше времени.
На самом деле в HMAC-хешах используется хеш примерно такого вида :
md5($password.md5($password.$key)) - алгоритм не совсем точный, но смысл примерно такой.

Во-вторых.
Если взломщик получил базу, в которой хранятся md5($passwordю;кфтвщь_ыекштп) то он будет вынужден подбирать каждый пароль отдельно. А если бы там были чистые md5($password), то он бы мог искать по все базе :
Код: plaintext
1.
2.
3.
4.
5.
while ($not_found) {
   $password = generetRandomPassword();
   $password = md5($password);
   $sql = "SELECT * FROM users WHERE password = '$password'";
    .....
}
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Есть ли метод узнать какое слово было преобразовано при md5 / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]