Вот стою перед дилеммой, как решить вопрос аунтификации?
Мне нужно чтобы при запуске программы появлялась форма с полями логина и пароля. Пользователей будет много, и в зависимости от пользователя менялась одна из глобальных переменных в программе.
Хранить пароли в базе данных, мне не подходит т.к. мне нужно чтобы программа запускалась и при отсутствии связи с БД.
Наверно необходимо хранить пароли в текстовом файле, а для безопасности шифровать их Hashsum? но... непонятно как сделать чтобы при вводе логина и пароля, происходил перебор имеющихся в файле паролей и при совпадении запускалось основное окно программы.
И за одно задам еще вопрос. В программе есть меню Config как в примере dbMySQL, так вот там есть поле Password, эта переменная хранится в файле setup.ini. Можно как-то сделать чтобы эта переменная была зашифрована и недоступна для простого просмотра?
Этот топик читают: Гость
Ответов: 409
Рейтинг: 17
|
|||
карма: 0 |
|
Ответов: 108
Рейтинг: 14
|
|||
делаешь чтение зашифрованных паролей их файла,далее перебор всех элементов масива с последующей дешифрацией по твоей схеме и сравнение.А чем компонент shareware не устроил?
------------ Дoбавленo в 23.00: я могу схему сделать тебе,если надо.напиши тока подробно что и как должно происходить |
|||
карма: 0 |
|
Ответов: 4641
Рейтинг: 334
|
|||
Pirr, вот тебе для начала. (хеши в схеме - pirr и промолчу... )
code_13195.txt Остальное сам додумаешь наверно. Про дочерни формы есть примеры в вики, если что. Да и про хеш сумму тоже. Как загрузить текстовый файл в мемо, тоже не проблемма наверно. (doLoad и FileName) |
|||
карма: 1 |
| ||
файлы: 1 | code_13195.txt [772B] [137] |
Ответов: 108
Рейтинг: 14
|
|||
по поводу второго вопроса - конечно можно,просто перед установкой значения переменной,шифруй текст, а при использовании дешифруй. надо добавить всего 1 элемент,если ты хэшом собираешься шифровать
|
|||
карма: 0 |
|
Ответов: 4641
Рейтинг: 334
|
|||
Друзья-товарищи, напоминаю ЧТО ХешСумма Это одностороннее "шифрование". Вввел слово - получил бяку! А Из бяки, можно получить обратно только бяку.
|
|||
карма: 1 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Ravilr писал(а): Вввел слово - получил бяку! А Из бяки, можно получить обратно только бяку, но бяка получается из одного и того же слова всегда одинаковая |
|||
карма: 22 |
|
Ответов: 4641
Рейтинг: 334
|
|||
nesco писал(а): но бяка получается из одного и того же слова всегда одинаковаяnesco, это факт. !!! |
|||
карма: 1 |
|
Ответов: 171
Рейтинг: 19
|
|||
Аутентификация дело тонкое, тут надо продумать все наперед. Во первых аутентификации предшедствует регистрация. Сперва нужно определить каким образом будешь добавлять пользователей в систему, если
Pirr писал(а): Пользователей будет многото вручную добавлять получится довольно хлопотно, ну сотня еще ничего , а если тысячи. Может стоит подумать чтобы пользователи сами регистрировались. Во вторых Pirr писал(а): чтобы при вводе логина и пароля, происходил перебор имеющихся в файле паролей обычно проверяется связка логин-пароль, иначе получится что зная пароль можно зайти под любым логином или без него вообще. Нужно привязать логин к конкретному паролю. Конечно хранить пароли в файле это наихудший вариант который может быть. Pirr писал(а): мне нужно чтобы программа запускалась и при отсутствии связи с БДнезнаю конечно конкретной задачи, но можно сделать чтобы программа запускалась бы сначала без авторизации, и поместить гненибудь кнопочку типа"Войти" по которой всплывает форма для аутентификации, чтобы приступить к работе с базой (заодно отпадает надобность хранить пароли в файле). Ну по типу как в онлайн Покере)) С Днем Победы Товарищи! |
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 2 раз(а), последний 2025-01-10 12:48:48 |
|||
карма: 0 |
|
Ответов: 4641
Рейтинг: 334
|
|||
Рі. Pirr1 писал(а): А нодо и шифрацию и дешифрацию как-то сделать.это конечно можно сделать, а надо ли оно? Думаю так! логин+пароль=Хеш сумма. Далее в отдельной таблице (а точнее 2 мемо) у тебя список: Хеш сумма и ФИО, номер, пол, возраст, размер груди, замужем/нет.....ну да ладно. И при входе вводит лоргин и пороль, получается хешсумма! По хемсумме находишь индекс строки, а имея индекс строки в другом мемо ты запросто находишь саму строку с ФИО итд |
|||
карма: 1 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 2 раз(а), последний 2025-01-10 12:48:48 |
|||
карма: 0 |
|
Ответов: 409
Рейтинг: 17
|
|||
Че за ерунда, форум не пускает, говорит такой такой пользователь существуе
--------------------------------- Пустило! |
|||
карма: 0 |
|
Ответов: 4641
Рейтинг: 334
|
|||
Рі. Pirr1 писал(а): Про шифрацию и дешифрацию - это я для файла setup.ini писал, где хранится пароль для доступа к БД.тогда ясно. Используй компонент Crypting от Wolfik |
|||
карма: 1 |
|
Ответов: 409
Рейтинг: 17
|
|||
Всем спасибо, всё у меня получилось. Просто сказка
Сперва слепил форму для администрирования. В ней задал поля ввода: ФИО, имя, пароль, печать. Затем данные из полей "имя" и "пароль" объеденил и Hashsum зашифровал. И дальше все на сохранение в файл. В итоге в текстовом файле имеем строки вида: Администратор;F6FDFFE48C908DEB0F4C3BD36C032E72;000 Потом создал форму для аутентификации. Где поля "имя" и "пароль" также шифруются Hashsum. Текстовый файл автоматически грузится в таблицу строк. При вводе имени и пароля, начинается поиск хэша в таблице строк, и как только он находит совпадение, происходит доступ к главной форме программы. Плюс я имею индекс строки в которой найден хэш, а разложить строку на состовляющие уже не сложно. В общем если кого заинтересовал такой вариант, могу подготовить упрощенную схему и выложить. |
|||
карма: 0 |
|
Ответов: 24
Рейтинг: 6
|
|||
Pirr писал(а): В общем если кого заинтересовал такой вариант, могу подготовить упрощенную схему и выложить.дай пожалуйста,я как раз такую же прогу делаю |
|||
карма: 1 |
|