![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
PHP
Пользователь
Регистрация: 28.03.2007
Сообщений: 70
|
![]()
Добрый вечер!
Дошел до необходимости хранения паролей пользователей. Понимаю, что шифровать их надо (можно через dsCrypt, можно через функцию и т.д.), но как хранить их в таблице? То есть просто пишем в соответствующее поле таблицы пользователей, а потом по вводимому имени извлекаем для сравнения? Или принято использовать какой-то более сложный механизм хранения? Просветите. И к тому же все скрипты хранятся в какой-то защищеной папке? Типа CGI? |
![]() |
![]() |
![]() |
#2 |
***
Участник клуба
Регистрация: 30.07.2007
Сообщений: 1,162
|
![]()
Вкратце можно так: например в таблице храниться хэш пароля и логин (уникальное поле). Потом при авторизации пользователя, из пришедшего пароля получается хэш, делается выборка по пришедшему логину из таблицы и сравниваются хэши.
|
![]() |
![]() |
![]() |
#3 |
PHP
Пользователь
Регистрация: 28.03.2007
Сообщений: 70
|
![]()
Понятно, спасибо. Вы мне не поможете еще с одним моментом? Я заметил, что в сценарии устанавливаются переменные - хост, имя и пароль для подключения к базе. Они действительно хранятся прямо в открытом виде в коде? Ведь это прямая угроза. Каким образом правильно хранить параметры подключения к БД?
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
![]()
Это не опасно, если данные находятся в php-файлах, а не в каких-нибудь .conf, .ini, .txt и т.п.
|
![]() |
![]() |
![]() |
#5 | |
PHP
Пользователь
Регистрация: 28.03.2007
Сообщений: 70
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 21.02.2009
Сообщений: 372
|
![]() Цитата:
А про "шифрования", как сказали ранее, используйте хеширование пароля (например, алгоритм хеширования md5) и храните в базе хэш пароля. Таким образом, если злоумышленник получит доступ к базе (например, через SQL инъекцию) и получит хэши паролей, то с ними он, грубо говоря, ничего не сможет сделать, потому что функция md5() в php устроена так, что одному сгенерированному значению может соответствовать множество начальных значений. Код:
Код:
No name. Just Linel.
|
|
![]() |
![]() |
![]() |
#7 |
PHP
Пользователь
Регистрация: 28.03.2007
Сообщений: 70
|
![]()
Спасибо. Да, я уже "нарыл" про необратимое шифрование (md5). Теперь понимаю почему на сайтах создают новый пароль, а не возвращают старый
![]() |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 22.10.2011
Сообщений: 14
|
![]()
Не рекомендуется использовать "голый" md5, на данный момент существует куча баз для расшифровки+проблема коллизий.
Я предпочитаю Код:
|
![]() |
![]() |
![]() |
#9 |
PHP
Пользователь
Регистрация: 28.03.2007
Сообщений: 70
|
![]()
Да, только опять же проблема в хранении соли. Если она будет уникальной длч каждого user_id, ее надо будет хранить с этим юзером, и, если она будет в незашифрованном виде в одной строке с user_id, то только очень глупый человек не догадается что к чему.
|
![]() |
![]() |
![]() |
#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 |