![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| manson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 21.5.2007 Репутация: нет Всего: нет |
в общем, на моей страничке есть форма для авторизации пользователей. Данные о пользователях хранятся в таблице MySQL (логин, пароль и т.д.). Короче все стандартно...
Проблема в том, что задание стоит следующим образом: ни в программном коде, не в базе данных, пароль не должен храниться в открытом виде (для обеспечения безопасности). Подскажите, плз, в каком направлении двигаться... |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
пароль, которых хранится в базе, можно хэшировать функцией sha1()
Добавлено через 1 минуту и 44 секунды И давайте разделять понятия. Если речь идет о безопасности, то давайте говорить о безопасности. Если речь идет о некоем "задании", то давайте забудем о безопасности, и будем говорить об этом задании. |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
manson, вариантов два:
1. использовать стандартные ф-ции шифрования\хеширования 2. написать свою -------------------- Amazing |
|||
|
||||
| manson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 21.5.2007 Репутация: нет Всего: нет |
ммм... я так понял речь идет о пхп-функциях шифрования?
|
|||
|
||||
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
храни в базе хэш пароля
|
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
не шифрования, а хэширования.
пример доступен в документации, по имени функции. |
|||
|
||||
| OutlawZ |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 269 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
Манул рулит, в нем есть примеры использование функции шифрования:
Взято из мануала MD5
SHA1
Ну а если так то :
То есть перед тем как пароль в БД запихнуть переменная с паролем скажем она методом пост передается $_POST['passwd'] должна пройти через функцию шифрования, можно записать так sha1($_POST['passwd']); и отпровляем ее в БД, только лучше отправить переменную $cr так как в ней функция шифрует полученный пароль от формы. -------------------- ![]() ![]() |
||||||
|
|||||||
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
OutlawZ, не ьщифрование, а хэширование
|
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: -1 Всего: 17 |
хэш sha1,md5,etc еще можно "закриптографировать" md5crypt http://www.usenix.org/events/usenix99/prov...tml/node10.html
так как через "Радужные таблицы" можно перебрать хэш и взломать пароль http://ru.wikipedia.org/wiki/Радужная_таблица я вот ковырял PostfixAdmin
Это сообщение отредактировал(а) gcc - 16.9.2009, 14:54 |
|||
|
||||
| manson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 21.5.2007 Репутация: нет Всего: нет |
Большое спасибо, OutlawZ!
Только когда я обратно буду из базы доставать, как мне расшифровать? |
|||
|
||||
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
Да тебе не нужно расшифровывать, хэшь не имеет дешифратора (кроме грубой силы, о_О и не только)!!!
Тебе всеголишь нужно будет сравнивать хэш пришедшего пароля с хэшем в базе Это сообщение отредактировал(а) NewDima - 16.9.2009, 14:46 |
|||
|
||||
| manson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 21.5.2007 Репутация: нет Всего: нет |
to NewDima!
Логично. Спс |
|||
|
||||
| OutlawZ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 269 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
Что бы сравнить хеши можно сделать что то вроде такого, из базы берем хеш по имени который было введено т.е придется составлять запрос такого вида:
Ну думаю как то так Забыл сказать что переменную $_POST['passwd'] надо перед тем как помещать в запрос проверить на опастные символы , с помощью рег выражения что бы не было ошибки запрос или какие нить хулиганы не получили доступ к бд. Это сообщение отредактировал(а) MoLeX - 16.9.2009, 16:11 -------------------- ![]() ![]() |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
OutlawZ, вы забыли кое-что в своем замечательном коде.
Мне кажется, вы очень торопитесь все время. |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
OutlawZ, зачем все эти лишние телодвижения?
-------------------- Amazing |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |