Что такое «соль» в отношении MYSQL sha1? Я понятия не имею, что такое соль при шифровании паролей sha1? Может кто-нибудь объяснить, что это такое?
Что такое соль применительно к MYSQL sha1?
Ответы (3)
Соль — это значение, которое добавляется к паролю (или другому секрету), который вы хотите хэшировать одним способом. Это означает, что он может быть до, после или где-то внутри пароля, если его положение и значение соответствуют заданному паролю.
Что это делает, так это смягчает атаки по словарю — в основном словари общих паролей, предварительно хешированные без соли — от использования для «угадывания» одностороннего пароля, пока злоумышленник не знает хеш. Если каждый пароль имеет разный хеш, злоумышленнику будет очень сложно создать словарь, оптимизированный для взлома ваших паролей (им потребуется словарь для каждой отдельной соли, и им также нужно будет знать, где соль была помещена в каждый пароль). ).
Конечно, чтобы все это было применимо, злоумышленник должен в первую очередь иметь хэши ваших паролей. Это не имеет ничего общего с атакой на пароли путем их подбора с помощью какой-либо подсказки ввода.
Что касается MySQL, в частности, если вы предоставляете соль при хешировании пароля, убедитесь, что вы где-то записали, что это была за соль. Затем, когда пользователь пытается выполнить аутентификацию, вы объединяете это записанное значение соли с паролем (например, во время вызова crypt
), и если полученный хэш совпадает, значит, он ввел правильный пароль. (Обратите внимание, что хеширование пароля никогда не меняется на противоположное; таким образом, в одну сторону.)
соль — это не что иное, как строка, которую вы прикрепляете к паролю либо как константу, либо с помощью алгоритма.
что усложняет задачу для любого, кто нарушил вашу безопасность и получил доступ к вашему сохраненному паролю, что, в свою очередь, делает практически невозможным для него использование радужных словарей, чтобы разблокировать настоящий пароль, что с точки зрения хакера может быть полезным так как многие люди используют один и тот же пароль на разных сайтах
$salt = "this is a salt";
$password = 'this is an password';
$hash = sha1($salt.$password);
Вот как вы в основном могли солить пароль
$
«соль» $
«хэш». $
являются только разделителями.
- person Ignacio Vazquez-Abrams; 04.12.2010
Соль добавляется к открытому тексту (или наоборот) перед хешированием, чтобы сделать поиск в словаре более дорогим.