Что такое соль применительно к MYSQL sha1? - PullRequest
8 голосов
/ 04 декабря 2010

Что такое "соль" применительно к MYSQL sha1?Я понятия не имею, что такое соль при шифровании паролей sha1?Может кто-нибудь объяснить, что это такое?

Ответы [ 3 ]

14 голосов
/ 04 декабря 2010

Соль - это значение, которое добавляется к паролю (или другому секрету), который вы хотите хэшировать одним способом.Это означает, что он может быть до, после или где-то внутри пароля, если его позиция и значение согласованы для данного предоставленного пароля.

Что он делает, так это смягчает атаки по словарю - в основном словари общих паролейпредварительное хеширование без соли - от того, что его использовали для «угадывания» одностороннего пароля, если злоумышленник не знает хеш.Если у каждого пароля свой хэш, то злоумышленнику будет очень трудно создать словарь, оптимизированный для взлома ваших паролей (ему потребуется словарь для каждой отдельной соли, а также он должен знать, где соль помещена в каждом пароле).).

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

Что касается MySQL, особенно если вы предоставляете соль при хешировании пароля, убедитесь, что вы записали, что это за соль была где-то.Затем, когда пользователь пытается выполнить аутентификацию, вы объединяете это записанное солт-значение с паролем (например, во время вызова на crypt), и если полученный хеш-код совпадает, он вводит правильный пароль.(Обратите внимание, что хеширование пароля никогда не отменяется; таким образом, один способ.)

9 голосов
/ 04 декабря 2010

соль - это не что иное, как строка, которую вы прикрепляете к паролю, либо в виде константы, либо с помощью алгоритма

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

$salt = "this is a salt";
$password = 'this is an password';
$hash = sha1($salt.$password);

Вот так ты в принципе мог бы посолить пароль

5 голосов
/ 04 декабря 2010

Соль добавляется в открытый текст (или наоборот) перед хэшированием, чтобы сделать поиск в словаре более дорогим.

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