Можете ли вы зашифровать зашифрованную строку снова и снова? - PullRequest
3 голосов
/ 30 апреля 2011

Мне было интересно, можете ли вы использовать md5 снова и снова или использовать sha1 снова и снова, например:

$pass = md5($pass);
$pass = sha1($pass);
$pass = md5($pass);
$pass = md5($pass);

и все еще есть работа ? Поэтому он зашифровывает зашифрованную строку снова и снова, потому что я хотел создать серьезно зашифрованную систему паролей, чтобы никто не мог ее взломать, и я обеспокоен тем, что этот дополнительный алгоритм, который я создаю, будет работать или нет .?

Ответы [ 4 ]

5 голосов
/ 30 апреля 2011

Если вы пытаетесь хэшировать пароли, посмотрите scrypt Не используйте больше ничего и определенно не катите свою собственную систему.

3 голосов
/ 30 апреля 2011

Ни MD5, ни SHA1 не являются алгоритмами шифрования; это односторонние хэш-функции. Никто не может "взломать" либо, в том смысле, что они не обратимы; исходная информация теряется. То, что может сделать, это попытаться создать другой текст, который дает тот же хэш; повторное хеширование не сделает это ни легче, ни труднее.

1 голос
/ 01 мая 2011

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

Однако я бы не стал использовать MD5, но использовал бы хэш-функцию, для которой нет алгоритма быстрого нахождения коллизийизвестен (например, SHA256).Это позволяет использовать результаты статьи «Безопасное применение ключей с низкой энтропией» Келси, Шнайера, Холла и Вагнера.В частности, теорема 1 показывает некоторые свойства безопасности, если используемая хеш-функция устойчива к столкновениям.И всегда приятно иметь некоторую теоретическую поддержку криптографического протокола.

0 голосов
/ 30 апреля 2011

Хеширование один раз одинаково безопасно, как хеширование много раз.Это факт математических алгоритмов шифрования.

Что вы действительно хотите сделать, так это добавить salt к вашему алгоритму.

Кроме того, многократное хеширование пароля может привести кв криптографических коллизиях , которые фактически делают шифрование МЕНЬШЕ безопасным.

По сути, это не мудрое решение при разработке и не хорошая практика.

edit # 1

Кроме того, используйте алгоритм, который еще не был серьезно взломан.Я предпочитаю джакузи , что очень сильно.В сочетании с солью он почти непроницаем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...