|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Программа в Delphi
Помогите, пожалуйста, написать программу!!!
Необходима программа, которая бы делала так: При регистрации нового пользователя или смене пароля старого записывала бы в БД не сам пароль в открытом виде, и не его шифрованную версию, а его хэш. При авторизации проводится сравнение не введенного паролля, а на основе введенного пароля рассчитывается значение хэш-функции и сравнивается с эталоном - если они совпадают, то пользователь авторизуется. Т.е. программа, которая имеет систему авторизации, БД для хранения данных и некоторый алгоритм вычисления хэш-функции (например, MD5) Буду очень благодарна!!! |
#2
|
|||
|
|||
А где происходит регистрация ?
Компоненты для шифрования и хеширования различными методами |
#3
|
|||
|
|||
В базе данных
|
#4
|
|||
|
|||
А не понимаю в чем проблема.
1. Все современные БД примерно так и делают. 2. Если тебе это надо сделать на уровне приложения, ну так в чем проблема? Программа подключается некоторым общим эккаунтом и проверяет по БД хэш пароля. Далее если совпало, то пускает дальше. Делов-то на полчаса... |
#5
|
|||
|
|||
Ну для хорошего программиста мб и на полчаса)))
|
#6
|
|||
|
|||
Цитата:
Ну так алгоритм я тебе дал. Тут надо понимать, что на самом деле авторизация тут будет фейковая, т.е. на уровне программы, а работа с БД все-равно делается под некоторым специальным эккаунтом. Условно говоря, тебе нужна таблица вида: Код:
CREATE TABLE USERS ( ID INTEGER PRIMANY KEY, LOGIN VARCHAR(100) NOT NULL, PASS_HASH VARCHAR(32) NOT NULL -- md5 ); Ну и запрос из программы, который проверяет правильный ли хэш: Код:
SELECT COUNT(*) FROM USERS WHERE LOGIN=:LOGIN AND PASS_HASH=:HASH Если запрос вернул что-то отличное от 1, то все плохо (конфликт или нет такого пользователя). Если ровно 1, то все ОК и пользователя пускаем. ЗЫ. За готовым рещением - в раздел "Работа". Слишком уж неинтересная задача что бы ею заиматься. |