|
Вопрос # 469/ вопрос открыт / |
|
Здраствуйте дорогие эксперты. Спрашивает начинающий программист. Прежде чем войти в мое прилодения, есть форма содержащие поля "выбор пользователя" и "ввод пароля". Помогите пожалуйста, как для каждого пользователя задать отдельный пароль и в процессе работы система автоматически регистрировала этого пользователя. внести все изменения с датой изменения и имя пользователя в отдельную таблицу.
Ответ #1. Отвечает эксперт: Вадим К
Надеюсь форму вы сделали. Дальше поступаем так, заводим базу данных с такими полями: имя, хеш пароля и код уровня доступа. В качестве хеша юзаем например md5 или SHA256. Почему хеш? Что бы если шпион откроет базу, то не мог узнать пароль, зачем он ему:)
А с кодом доступа - это я в качестве примера, я так просто когда то делал. Записан 255 - полный доступ, записан 0 никуда нет доступа. Записан 192 (в двоичной системе 11000000) доступ открыт только к первым двом функциям (я предполагаю, что у нас 8 пунктов доступа, типа "печать", "добавления пользователей", "экспорт", и так далее, вам виднее.) целое число вам даст 32 бита, чего обычно предостаточно. Что бы враг и тут не догадался, число можно зашифровать.
Теперь о других деталях. Как проверить пароль, если у нас только хеш? такие алгоритмы, как md5 односторонние, тоесть в одну сторону быстро, а обратно - обычно только полный перебор. Мы же в проге делаем так. Пользователь ввел пароль, мы берём хеш и сравниваем с записаным в базе. Потом взяв от паролья какой нибудь другой хеш, можно расшифровать конфиденциальные настройки. Только не переусердствуйте - потом может быть мучительно больно, когда потеряете данные.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 9 апреля 2007, 22:18
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|