Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2008, 07:02   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Вопрос Моя программа и пароль

Добрый день уважаемые программисты! Я заканчиваю работу над программой одной и хотел бы у вас вот что спросить. Я хочу, чтобы при запуске моей программы появлялось окно, куда пользователь должен ввести имя пользователя и пароль и чтобы если они правильные, то ему было разрешено работать с программой. Вообщем я хочу сделать так сказать защиту своей программы. Как мне это сделать? И еще надо, чтобы на окне где пользователь вводит данные кнопка «ОК» не была доступна, пока данные не будут введены. Когда данные будут введены, то по нажатию кнопки «ОК» будет происходить проверка данных и если они правильные, то доступ будет разрешен. Есть идеи как это сделать? Я программирую в Borland Delphi 7 Enterprise. Заранее спасибо)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 10.07.2008, 07:42   #2
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

А где вы имена пользователей и пароли будете хранить и в каком виде?
edgy вне форума Ответить с цитированием
Старый 10.07.2008, 07:58   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну хранить не пароль а хеш лучше.
А по поводу ввода. Сделать форму с двумя полями. Запретить кнопку ОК, а по OnChange эдитов проверять пустые они или нет, и если оба непустые то ОК разрешить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.07.2008, 08:09   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Можно из RXLib, там есть такой компонент
SERG1980 вне форума Ответить с цитированием
Старый 10.07.2008, 10:14   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

/А где вы имена пользователей и пароли будете хранить и в каком виде?//
Я не знаю пока. А как лучше сделать?
/Сделать форму с двумя полями. Запретить кнопку ОК, а по OnChange эдитов проверять пустые они или нет, и если оба непустые то ОК разрешить./
А можешь если не трудно набросать пример? А то я могу ошибиться в синтаксисе. Плиз)
/Можно из RXLib, там есть такой компонент/
Можно поподробнее об этом рассказать?)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 10.07.2008, 10:48   #6
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Есть библиотека сторонних компонентов. называется RXLib. Там есть компонент RxLoginDialog, который может подойти для ваших целей. У компонента есть событие AfterLogin где можно сравнивать правильность ввода и делать какието действия Внешний вид см. ниже
Вложения
Тип файла: rar Безымянный.rar (7.4 Кб, 33 просмотров)
SERG1980 вне форума Ответить с цитированием
Старый 10.07.2008, 10:56   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А то я могу ошибиться в синтаксисе
Ошибешся - поправим
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.07.2008, 11:55   #8
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Вот, я тут быстренько написал код. Если пароль в программе не меняется, то думаю он подойдёт, а если надо менять, то надо будет данные из файла загружать. Можно для удобства хранить в .ini файле. И что бы его не нашли можно этот файл запихнуть куда нибудь в системные директории и дать ему своё расширение (К примеру .dfe ну или ещё какое нибудь) что бы не нашлось в винде программы которая может его открыть. Хотя если захотеть то можно всё открыть.

У Button'a свойство Enabled изначально должно быть равно Enabled:=False;
Код:
Var
S,P:String;
Procedure TForm2.FormShow(Sender: TObject);
Begin
S:='YYY';// К примеру
P:='123123123';
End;
Procedure TForm2.Edit1Change(Sender: TObject);
Begin
If (Edit1.Text=S) And (Edit2.Text=P) Then
Begin
Button1.Enabled:=True;
End
Else
Begin
Button1.Enabled:=False;
End;
End;
Procedure TForm2.Edit2Change(Sender: TObject);
Begin
If (Edit1.Text=S) And (Edit2.Text=P) Then
Begin
Button1.Enabled:=True;
End
Else
Begin
Button1.Enabled:=False;
End;
End;
Procedure TForm2.Button1Click(Sender: TObject);
Begin
...// Действия которые произойдут по нажатию на кнопку.
End;
From Stilet: Написал - хорошо. Некузяво оформил - плохо, а плюс на минус дает... Так что об оформлении не забываем.
Всегда рад помочь!

Последний раз редактировалось Stilet; 10.07.2008 в 12:47.
Terran вне форума Ответить с цитированием
Старый 10.07.2008, 17:20   #9
Zloy_Doomer
Форумчанин
 
Аватар для Zloy_Doomer
 
Регистрация: 25.04.2008
Сообщений: 277
По умолчанию

Насколько я понял то недоступность кнопки будет зависить от того есть ли ХОТЬ КАКИЕТО ДАННЫЕ в поле edit1/2 а в вашем примере все происходит по такому сценарию:
Procedure TForm2.EditXChange(Sender: TObject);
если edit1/2.text = s/p то сделать кнопку доступной если нет то недоступной...

или такая задача и была поставлена и я чегото не понял???При таком коде кнопка станет доступной только если пароль и логин будут правильные...
Если нет то вот так было бы правильнее:
Procedure TForm2.Edit1Change(Sender: TObject);
Begin
if edit1.text <> '' then button1.enbled := true else button1.enabled := false;
end;

Да и нащет пароля...
Я делал нечто похожее и делал так:Сохранял пароль в определенной ветке реестра в виде ORD(символ) то есть не сам символ а его код...конечно при знании етого нехитрого алгоритма взломщику не составит труда перевести все обратно...но вначале нада знать где копать...
it is a good day to die
Zloy_Doomer вне форума Ответить с цитированием
Старый 10.07.2008, 17:30   #10
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

и здесь можеш почитать:
http://programmersforum.ru/showthrea...E0%F0%EE%EB%FC
beegl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пароль Terran Общие вопросы Delphi 2 12.02.2008 22:32
Пароль Михаил Юрьевич Общие вопросы Delphi 3 06.02.2008 16:44
Пароль в BDE sander БД в Delphi 4 28.10.2007 11:16
программа пароль ruslan21 Общие вопросы Delphi 3 21.06.2007 17:27
Про пароль icq! sis Безопасность, Шифрование 2 03.05.2007 20:55