|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.11.2011, 21:50 | #1 |
PHP
Пользователь
Регистрация: 28.03.2007
Сообщений: 70
|
Хранение паролей в БД + шифрование
Добрый вечер!
Дошел до необходимости хранения паролей пользователей. Понимаю, что шифровать их надо (можно через dsCrypt, можно через функцию и т.д.), но как хранить их в таблице? То есть просто пишем в соответствующее поле таблицы пользователей, а потом по вводимому имени извлекаем для сравнения? Или принято использовать какой-то более сложный механизм хранения? Просветите. И к тому же все скрипты хранятся в какой-то защищеной папке? Типа CGI? |
24.11.2011, 22:17 | #2 |
***
Участник клуба
Регистрация: 30.07.2007
Сообщений: 1,162
|
Вкратце можно так: например в таблице храниться хэш пароля и логин (уникальное поле). Потом при авторизации пользователя, из пришедшего пароля получается хэш, делается выборка по пришедшему логину из таблицы и сравниваются хэши.
|
24.11.2011, 22:42 | #3 |
PHP
Пользователь
Регистрация: 28.03.2007
Сообщений: 70
|
Понятно, спасибо. Вы мне не поможете еще с одним моментом? Я заметил, что в сценарии устанавливаются переменные - хост, имя и пароль для подключения к базе. Они действительно хранятся прямо в открытом виде в коде? Ведь это прямая угроза. Каким образом правильно хранить параметры подключения к БД?
|
24.11.2011, 22:59 | #4 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Это не опасно, если данные находятся в php-файлах, а не в каких-нибудь .conf, .ini, .txt и т.п.
|
25.11.2011, 06:55 | #5 |
PHP
Пользователь
Регистрация: 28.03.2007
Сообщений: 70
|
Ясно. Я просто думал, что их скачать с сервера могут. А раз нет - так и сделаем Чтож, спасибо за ответы - Вы мне очень помогли.
|
25.11.2011, 11:43 | #6 | |
Форумчанин
Регистрация: 21.02.2009
Сообщений: 372
|
Цитата:
А про "шифрования", как сказали ранее, используйте хеширование пароля (например, алгоритм хеширования md5) и храните в базе хэш пароля. Таким образом, если злоумышленник получит доступ к базе (например, через SQL инъекцию) и получит хэши паролей, то с ними он, грубо говоря, ничего не сможет сделать, потому что функция md5() в php устроена так, что одному сгенерированному значению может соответствовать множество начальных значений. Код:
Код:
No name. Just Linel.
|
|
25.11.2011, 12:16 | #7 |
PHP
Пользователь
Регистрация: 28.03.2007
Сообщений: 70
|
Спасибо. Да, я уже "нарыл" про необратимое шифрование (md5). Теперь понимаю почему на сайтах создают новый пароль, а не возвращают старый
|
25.11.2011, 16:54 | #8 |
Пользователь
Регистрация: 22.10.2011
Сообщений: 14
|
Не рекомендуется использовать "голый" md5, на данный момент существует куча баз для расшифровки+проблема коллизий.
Я предпочитаю Код:
|
26.11.2011, 11:08 | #9 |
PHP
Пользователь
Регистрация: 28.03.2007
Сообщений: 70
|
Да, только опять же проблема в хранении соли. Если она будет уникальной длч каждого user_id, ее надо будет хранить с этим юзером, и, если она будет в незашифрованном виде в одной строке с user_id, то только очень глупый человек не догадается что к чему.
|
26.11.2011, 12:10 | #10 | ||
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Цитата:
Советую внимательно прочитать статью по ссылке выше: Цитата:
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шифрование паролей | varvar123 | Общие вопросы Delphi | 3 | 30.05.2011 11:37 |
генератор паролей | Shuster | Общие вопросы C/C++ | 5 | 29.11.2010 11:30 |
Программа Хранение паролей в Delphi | ChEaTeR-abc | Помощь студентам | 19 | 07.07.2010 08:35 |
Хранение и шифрование данных | Paul Hindenburg | БД в Delphi | 1 | 20.08.2007 09:04 |
генерация паролей | ozhjog | Общие вопросы Delphi | 3 | 02.07.2007 08:20 |