Итак, я понимаю, почему заправка пароля до хэширования - такая хорошая идея. Вопрос в том, что обычно люди предлагают добавить или добавить соль к паролю, почему бы не сделать то и другое?Хеширование, добавление большего количества соли
мое мышление, так что если г-н Хакер раздобыл БД и хочет получить пароль для лица х, он думает про себя, а большинство людей предполагает добавление или предваряя соль, так что позволяет сделать .. Он создает радужный стол со всеми комбинациями паролей + соль и пробует свою удачу. Если это не работает, он делает то же самое, но salt + password.
Чтобы сделать сложнее сделать атаку, почему разработчики не идут дальше и не солируют + пароль + соль, или «наоборот (соль) + пароль + соль», или вы можете быть фантастическими и начните резать пароль/соль, начните наносить кусочки соли здесь и там и т. д.
Единственный способ, с помощью которого хакер мог бы найти пароль, - если у него есть доступ к исходному коду (знать, как соль сплелось в пароле до хеширования)
Еще примечание, люди предлагают делать минимум 1000 итераций, когда ключ растяжения, опять же, почему не 1147, 1652 и т.д. :)
Вторая заметка, если смотреть на хэш-строку, можно ли выработать используемую функцию хэширования?
Нет проблем с угадыванием используемой функции хэширования. Это может быть публично. Пожалуйста, какой именно вопрос? Это о том, почему бесполезно терять время, добавляя соль на обоих концах? –
Да, но если вы посмотрите на длинную строку хэша, может ли хакер пойти «о, они использовали MD5» или «о, они использовали sha-512» и т. Д., Если они не могут, им придется делать таблицы радуги для всех «правильных» 'хэши; или им придется посмотреть исходный код. – Metalstorm
Да, легко различить хеши, созданные MD5, SHA1, SHA512 и т. Д. Например, их длина различна. Но это совсем не проблема. Вы, кажется, не понимаете разницы между попытками 3 алгоритмов вместо одного и пробуем 2 128 дополнительных комбинаций (обычные числа, с которыми мы имеем дело в криптографии). –