// Im
Folgenden wird durch Erweiterung des Projekt-Quelltextes eine sehr
// einfache Art und Weise gezeigt, wie man sein Programm mit einem
Passwort
// schützen kann. Damit man das Passwort nicht in der fertigen EXE
ausspähen
// kann, wurde einfach hinter jedem Buchstaben ein weiterer Buchstabe
//
eingeschoben. So wurde im Beispiel das Passwort
'mypassword'
zu
//
'mÜy6p#a+ses?w*o@r8dx'. Die Funktion "pword"
löst das wieder auf. Wer größere
// Sicherheit braucht, muss natürlich auch einen höheren Aufwand betreiben.
// Getestet mit D4 unter NT
program Project1;
uses
Forms, stdctrls, dialogs,
Unit1 in 'Unit1.pas' {Form1};
type
TDummy = class(TForm)
protected
procedure MyKeyPress(Sender: TObject; var Key: Char);
end;
var
pwForm: TForm;
dummy: TDummy;
pwEdit: TEdit;
pw: string = 'mÜy6p#a+ses?w*o@r8dx';
ok: boolean;
const
rand = 12;
{$R *.RES}
procedure TDummy.MyKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then pwForm.close;
end;
function pword: string;
var
x: integer;
begin
result := '';
for x := 1 to length(pw) do
if odd(x) then result := result + pw[x];
end;
begin
pwForm := TForm.create(Application);
pwForm.Caption := 'Bitte Kennwort eingeben!';
pwForm.Bordericons := [biSystemMenu, biMinimize];
pwEdit := TEdit.create(pwForm);
pwEdit.parent := pwForm;
pwEdit.Font.Name := 'Wingdings';
pwEdit.PasswordChar := #108;
pwEdit.width := 220;
pwEdit.left := rand;
pwEdit.top := rand;
pwEdit.OnKeyPress := dummy.MyKeyPress;
pwForm.clientwidth := pwEdit.width + rand * 2;
pwForm.clientheight := pwEdit.height + rand * 2;
pwForm.Position := poScreenCenter;
pwForm.showmodal;
ok := pword = pwEdit.Text;
pwEdit.free;
pwForm.free;
if ok then begin
//--- der ursprüngliche Quelltext ----
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
// ------------------------------------
end else showmessage('Sorry, falsches Kennwort');
end.
|