|
|
|
| смотрел в инете как хешировать пароли и хотел спросить такого кода будет достаточно?
1 // сгенерируем строку длиной 22 символа
02 function unique_salt() {
03 return substr(sha1(mt_rand()),0,22);
04 }
05
06 $unique_salt = unique_salt();
07
08 $hash = sha1($unique_salt . $password);
09
10 // сохраним $unique_salt в записи пользователя
11 // ...
читал про пароли в русселер ком http://ruseller.com/lessons.php?rub=37&id=902
там был код посложней , но чтоб не путатся думаю вот такой поставить
еще вроде писалось что id еще можно вставить | |
|
|
|
|
|
|
|
для: kvins
(19.02.2011 в 15:34)
| | Чего-то я не могу догнать - как вы потом эти пароли будете сверять, если соль всегда уникальная?
А, кажется понял.
Вот прям представляю, злоумышленник получается список столбцов:
user_id, user_name, user_password, user_salt..
Всяко он не поймет, что к чему.
Как по мне - дак соль надо держать в коде. Мы ведь хэшируем, чтобы при просмотре базы данных нельзя было спокойно назвать пароль.
А уж если злоумышленник получит доступ и к исходному коду, и к базе данных - соль не поможет в любом случаи. | |
|
|
|
|
|
|
|
для: neadekvat
(19.02.2011 в 16:31)
| | если соль не сгенерирована индивидуально для каждого пароля - это уже не соль.
В коде такое держать нереально.
Да и не в том её назначение, чтобы исключить брутфорс-атаки по известной базе данных. | |
|
|
|
|
|
|
|
для: Trianon
(19.02.2011 в 17:03)
| | Не могу понять, в чем же тогда?
Если перехватить пароль, передаваемый от пользователя - то и знать то нафиг не надо, посолено там или поперчено. | |
|
|
|
|
|
|
|
для: neadekvat
(19.02.2011 в 17:13)
| | Потому что перехват пароля и брут-форс (полный перебор) - не единственные методы атак. | |
|
|
|
|
|
|
|
для: Trianon
(19.02.2011 в 17:17)
| | Сказанное мной не значит, что бессмысленно применять в качестве части инициализирующего вектора хеш-функции некоторую строку произвольным образом выбираемую , сохраненную в настройках данного экземпляра движка.
Просто это не отменяет полезность соли , как открытой части известного фрагмента (для данного пароля) хешируемой строки.
2 neadekvat:
(по поводу методов )
Генерация вспомогательных таблиц (тех же rainbow tables) при применении соли теряет рентабельность - потому что такие таблицы приходится генерировать не для целого спектра баз паролей, а для одной конкретной.
А на малом числе исходных данных их применение теряет эффективность. | |
|
|
|
|
|
|
|
для: Trianon
(19.02.2011 в 17:03)
| | ой что то вы запутали меня
1 Trianon а в этом коде разве не для каждого кода уникально?? 03 return substr(sha1(mt_rand()),0,22);
2 можно ли людям давать в пароле ставить пробелы???
3 мб логин тоже шифровать??
кстати я в первый раз это делаю есть ли лучше функция чем sha1 помоему видел еще sha2 или мне показалось | |
|
|
|
|
|
|
|
для: kvins
(19.02.2011 в 17:18)
| | >можно ли людям давать в пароле ставить пробелы???
Пробел (в пароле) чем-то отличается от другого символа (в нем же) ? | |
|
|
|
|
|
|
|
для: kvins
(19.02.2011 в 17:18)
| | ... | |
|
|
|