2017-01-18 12 views
1

Может ли хэшировать одни и те же переменные кратные времена, используя как md5, так и sha1, делает строку сложнее расшифровать и повысить безопасность?Многократное хеширование с помощью MD5 и SHA1

Может конкатенация версий MD5 и SHA1 одной и той же строки, а затем, наконец, хешировать ее еще password_hash(), помогите?

+6

Это «безопасность через безвестность». Не делай этого. Используйте 'password_hash' и что-то вроде bcrypt (blowfish cipher), который по умолчанию используется в PHP с 5.5. –

+2

технически: да. но практически: ** не надо ** использовать ** [password_hash()] (http://php.net/manual/en/function.password-hash.php) ** также: это хэш, а не шифрование. если у вас нет большой вычислительной мощности (какие у злоумышленников есть), они являются однонаправленными по дизайну. –

+0

в любом случае вы разрезаете и кубите его, он все равно сводится к md5/sha1. Поэтому короткий ответ на этот вопрос: нет. (по-моему, так или иначе) –

ответ

3

Может конкатенации версии MD5 и SHA1 из одной строки, а затем, наконец, хеширования его еще раз или с password_hash(), помочь?»

Нет, просто„нет“. Он будет только ухудшит

Вам не нужно использовать или даже должны использовать MD5/SHA1 и password_hash() несколько раз и вместе;. Вам просто нужно использовать его один раз, а «это» быть password_hash() Если вы используете это несколько раз. , ваша проверка не будет работать, поверьте мне, когда я это скажу.

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

При попытке сделать это ваш метод не удастся.

Вы используете password_hash() один раз, и подтвердите это с помощью password_verify().

Ссылки:


«Может хэширования те же переменные кратные раз, используя как md5 и sha1, делает строку более трудным для расшифровки и повысить безопасность? "

Что касается использования этого для хранения паролей, он не будет много пользы на самом деле, и те (хэширования) функции устарели.

Однако это не мешает вам использовать их для чего-то еще; например, токен, отправленный пользователям при проверке аккаунта. Тем не менее, есть несколько лучших методов для этого, но выходит за рамки вопроса.

+3

Возможно, вы захотите добавить, что 'password_hash()', используя значение по умолчанию, использует хэш в 10 раз, и если yuo хочет больше, вы можете заставить его делать это больше времени, а 'password_verify()' все равно сможет проверьте на матч – RiggsFolly

+0

@RiggsFolly Вы просто сделали * lol * хорошо, учитывая, что вы не удаляете свой комментарий ;-) –

+2

В дополнение к тому, что @ Fred-ii- говорит здесь: убедитесь, что вы *** [ t escape passwords] (http://stackoverflow.com/q/36628418/1011527) *** или использовать любой другой механизм очистки для них до хэширования. Выполнение этого * изменяет * пароль и вызывает ненужное дополнительное кодирование. –