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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2009, 16:06   #31
rzawm
Пользователь
 
Аватар для rzawm
 
Регистрация: 06.04.2009
Сообщений: 80
По умолчанию

Цитата:
Сообщение от MalCer Посмотреть сообщение
А лучше использовать генерацию пароля. Кто нибудь может привести простой пример этого?
а в чём собственно дело? По подробнее , какой пароль сгенерировать? если просто нужно сгенерить пароль отвечающий какимто требованиям то тут ни чего сложного нет есть полно софта для этог, точно не помню но помоему SafePassword называется. По подробней какой пароль нужно сгенерировать?
rzawm вне форума Ответить с цитированием
Старый 22.04.2009, 16:07   #32
rzawm
Пользователь
 
Аватар для rzawm
 
Регистрация: 06.04.2009
Сообщений: 80
По умолчанию

Или ты на делфях генереатор паролей хочеш своять? Говори что именно надо то
rzawm вне форума Ответить с цитированием
Старый 22.04.2009, 16:56   #33
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Что небуть такое что пока не ведеш пароль и логин программа не запустится тоесть
Код:
Close;
и
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 22.04.2009, 17:13   #34
rzawm
Пользователь
 
Аватар для rzawm
 
Регистрация: 06.04.2009
Сообщений: 80
По умолчанию

Цитата:
Сообщение от Alex2009 Посмотреть сообщение
Что небуть такое что пока не ведеш пароль и логин программа не запустится тоесть
Код:
Close;
и
Всё ясно, если пофиг на взлом дальнейший. То тогда слушай один из вариантов. На форму своего приложения кидай во весь размер окна панель, на эту панель размещай 2 едита и 2 лейбела один под имя пользователя второй под сн. В TForm.FormCreate пишешь Panel1.Visible:=True; А далее сравнивай то что юзер ввёл и то что должно быть если юзер ввёл правильно сн то Panel1.Visible:=False; если не правильно то ShowMessage "Проверьте правильность ввода, возможно включон CapsLock". Кстати чтоб не надоедало при каждом запуске приложения вводить сн, надо после первого правильного ввода создался к примеру файлик в каталоге программ с какимто значением а дальше при FormCreate перед Panel1.Visible:=True; приложение должно обратится к этому файлику и прочитать его содержимое если содержимое не верное или файла вобще нет то Panel1.Visible:=True; иначе Panel1.Visible:=False; и при последующем запуске панели не будет если сн правильный был введён. Вроде всё но это очень приметивно!!!
rzawm вне форума Ответить с цитированием
Старый 22.04.2009, 17:19   #35
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Вот код главной формы:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    open: boolean; //открыта ли форма с вводом логина и пароля
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 open := true;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
 if open then
 begin
  open := false;
  Form2.ShowModal;
 end;
end;

end.
А это код формы, где нужно вводить логин и пароль:
Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm2 = class(TForm)
    BitBtn1: TBitBtn;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.BitBtn1Click(Sender: TObject);
begin
 if (edit1.Text <> 'login') and (edit2.Text <> 'password') then
  Application.Terminate
 else
  Close;
end;

end.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 22.04.2009, 17:46   #36
rzawm
Пользователь
 
Аватар для rzawm
 
Регистрация: 06.04.2009
Сообщений: 80
По умолчанию

Зачем так сурово Application.Terminate :D , может сначала сообщение вывести что типа проверьте правильность или возможно включен CapsLock
rzawm вне форума Ответить с цитированием
Старый 22.04.2009, 17:49   #37
rzawm
Пользователь
 
Аватар для rzawm
 
Регистрация: 06.04.2009
Сообщений: 80
По умолчанию

С двумя формами посимпотичней будет, а если пользователь просто убьёт окно с вводом пароля или просто задвинти его за предела рабочего стола (конечно его можно сделать неперемещаемым но это не выход его можно будет просто убить и всё, а само приложение продолжит работу).
rzawm вне форума Ответить с цитированием
Старый 22.04.2009, 19:55   #38
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

А если мой пароль будет генерироваться по какой нибудь сложной формуле?То
Код:
 if (edit1.Text <> 'login') and (edit2.Text <> 'password') then
не подойдет
xor eax, eax
xchg [eax], eax

Последний раз редактировалось MalCer; 22.04.2009 в 20:04.
MalCer вне форума Ответить с цитированием
Старый 23.04.2009, 08:18   #39
rzawm
Пользователь
 
Аватар для rzawm
 
Регистрация: 06.04.2009
Сообщений: 80
По умолчанию

Смотря как он генерироваться будет, и что в этоге получится, то возможно будет к примеру такой вид if (edit1.Text <> 'login') and (edit2.Text <> s*i-g) then. где s-то что ввёл пользователь, i - какя нибудь постоянная привязанная к какому либо статическому значению, g- по аналогии с i. Ну это очень просто, нужен более сложный алгоритм, и по тексту надо раскидать аналогичных вещей но ложных, а самую результирующую проверку отнести как можно дальше от непосредственного кода, а ещё лучше, использовать онлайн регистрацию. Пример сообщение о вводе сн, введите сн, пользователь вводит сн, затем через некоторое время приложение отправляет на сервер неую последовательность коман в которой ко всему будет содержаться серийный номер к примеру винчестера, сервер это всё дело принимает , если регистрация прошла успешно отправляет юзеру ещё один код сгенерированный сервером, в котором в каком либо виде будет содержаться серийный номер винчечтера юзера и прочая инфа. Пользователь его либо сам вводит, а лучше чтобы он сам добовлялся в приложение и всё, у вас есть зарегистрированное приложение и которое будет работать тока на вашей машине, копирование исключено.(практически )
rzawm вне форума Ответить с цитированием
Старый 23.04.2009, 08:30   #40
rzawm
Пользователь
 
Аватар для rzawm
 
Регистрация: 06.04.2009
Сообщений: 80
По умолчанию

Что то я отвлёкся, нас же интересует что то попроще. Что я там выше написал будет актуально если СН integer, если же СН будет содержать и цифры и буквы то скорее всего нужно использовать string. Сдесь ещё интереснее, существуют функции к примеру для отображеия строки наоборот, для отображения какойто части наоборот и т.д. Пример: programm - mmargorp. Плюсом можно использовать сдвиг к примеру на 359, т.е. сначало сдвиг а пототом переворот. Про сдвиг у каждой клавиши или исмвола есть свой код #13 - если память не изменяет это Enter и т.д., (остальные не помню можно для отображения всех ченить быстро накидать но это сейчас никчему). Будем считать что код буквы p = #73 если используем сдвиг то получаем что её код становится #432 и у нас получается не буква а вобще какойто иероглиф, далее всё это проводим для всех символов нашего сн а затем ещё и меняем всё наоборот, и сравниваем с введённым. После всего этого получаем то что наш СН хранится в программе но имеет совершенно нечитаемый вид.
Со здвигом понадёжнее будет. Делай лучше так. Я бы пример набросал, тут не сложно, но к сожалению, я сейчус на работе, под рукой Делфей нету.
rzawm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лицензия Антивирус Касперского delphin100 Безопасность, Шифрование 6 25.03.2009 16:04
Запуск программы на выполнение из другой программы. ViNcHeStEr Паскаль, Turbo Pascal, PascalABC.NET 6 18.06.2008 14:33
программы koyot Фриланс 1 14.03.2008 13:10
лицензия BDS 2006 Романнн Свободное общение 0 09.12.2007 22:16
Помогите с делфи (лицензия найдена, но недопустима) DeDoK Софт 2 24.11.2007 10:42