Сделать MD5 сильным - PullRequest
       20

Сделать MD5 сильным

0 голосов
/ 13 ноября 2009

Я создаю сайт, который будет интегрирован с игрой, которая поддерживает только метод хеширования md5 (atm). Какой ofc больше не особенно безопасен. Но как я мог сделать это сильнее? Должен ли я просто генерировать длинные строки случайных букв и цифр и хэшировать их? Но затем пользователи должны сохранить пароль на бумажном / текстовом файле на компьютере.

Что вы предлагаете?

Ответы [ 5 ]

5 голосов
/ 13 ноября 2009

Что не так с хэшем md5 для того, что вы делаете? Бросать больше случайных символов в это не будет иметь большого значения.

Вы можете взглянуть на SHA хэши для альтернативы md5.

3 голосов
/ 13 ноября 2009

Слабые стороны md5 немного преувеличены, но вместо этого вы можете просто использовать sha512. Это лучший алгоритм хеширования.

2 голосов
/ 13 ноября 2009

Что именно вы хэшируете и как вы используете хеш?

Вы ссылаетесь на возможность хранения паролей к учетным записям для аутентификации на сайте? Слабость хеширования пароля вызвана неправильным использованием хэша (любого хэша), а не внутренней слабостью алгоритма хеширования. Никто не собирается перебирать ваш MD5-хеш, проблема будет в словарных атаках на известные хеш-значения (радужные таблицы). И защита состоит в том, чтобы использовать HMAC хеш или что-то подобное, например, "соленый" хеш.

Боюсь, вы не на том пути, если считаете, что использование другого алгоритма хеширования даст вам какую-то выгоду. Хотя верно то, что SHA1 или SHA256 имеют более сильный криптографический атрибут и будут выдерживать атаку грубой силой в течение более длительного времени, даже хэш-код stronges будет бесполезен при неправильном использовании. С другой стороны, MD5 будет нормально работать при правильном использовании.

2 голосов
/ 13 ноября 2009

Если это для хэширования паролей, рассмотрите возможность использования соленого хэша вместо простого хеширования пароля. См. Википедию

Если пароль выбран пользователем, подумайте о наличии индикатора надежности пароля, а также запретите использовать его слишком легко. Хорошая вещь - это проверить, что они как минимум два из верхних / нижних / чисел, и запустить их через cracklib, а если они не получат этого, откажитесь установить пароль.

Кроме того, у вас все в порядке.

2 голосов
/ 13 ноября 2009

Хотя MD5 не является лучшим алгоритмом хеширования из-за его слабых мест, все зависит от того, что именно вы делаете. Если это ваш единственный вариант и вы хотите хешировать пароли перед их сохранением в базе данных, делайте это обязательно.

Вы сказали, что MD5 - ваш единственный вариант "на данный момент". Означает ли это, что у вас могут быть другие алгоритмы хеширования, доступные позже? Попробуйте использовать MD5, но оставьте себе путь обновления для использования других алгоритмов.

Вы можете рассмотреть возможность использования соли в сочетании с MD5. Это поможет защитить от некоторых атак (например, радужных таблиц).

...