Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   eine passwort abfrage vor dem prog start (https://www.delphipraxis.net/51586-eine-passwort-abfrage-vor-dem-prog-start.html)

misterx 15. Aug 2005 17:27


eine passwort abfrage vor dem prog start
 
Ich brauche eine passwort abfrage vor dem prog start und es soll nach drei fersuchen ausgehen (oder am besten sich löschen) wen es geht.

malo 15. Aug 2005 17:29

Re: eine passwort abfrage vor dem prog start
 
Ist das jetzt eine Programmieraufgabe an uns? :gruebel:

Zeig uns doch mal deine Ansätze. Wir werden die ganz bestimmt keine Hausaufgaben machen ;)

misterx 15. Aug 2005 17:33

Re: eine passwort abfrage vor dem prog start
 
JA ICH WOLLTE WISSEN WIE ICH SOWAS mache und ich denke es ist ein kurtzer q text und ihr wüdet
fieleicht so freuindlich sein und mir ihn hinschreiben

Pr0g 15. Aug 2005 17:34

Re: eine passwort abfrage vor dem prog start
 
Hier nen (sehr) simples Beispiel:
Delphi-Quellcode:
program Project1;

uses
  Forms,
  Dialogs, // Fuer die InputBox
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  // Passwortabfrage
  if InputBox('Passwortabfrage', 'Bitte Passwort angeben', '') <> 'geheim' then
    halt;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Edit: Mit einer einfachen Schleife kommst du auch auf drei Versuche:
Delphi-Quellcode:
program Project1;

uses
  Forms,
  Dialogs, // Fuer die InputBox
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

var
  i: Integer; // Fuer die Schleife

begin
  Application.Initialize;
  // Passwortabfrage
  for i := 0 to 2 do
  begin
    if InputBox('Passwortabfrage', 'Bitte Passwort angeben', '') = 'geheim' then
      break;
    if i = 2 then
      halt;
  end;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Anstelle der InputBox bietet sich natürlich ein eigener Dialog an, welcher über den ShowModal aufruf die Eingabe zurückgibt.

malo 15. Aug 2005 17:36

Re: eine passwort abfrage vor dem prog start
 
Zitat:

Zitat von misterx
JA ICHG WOLLTE WISSEN WIE ICH SOWAS mache und ich denke es ist ein kurtzer q text und ihr wüdet
fieleicht so freuindlich sein und mir ihn hinschreiben

Wie gesagt: Es macht dir keiner deine Hausaufgaben. Und wenn du so dreist bist und "rumschreist", dann werde ich den Teufel tun dir bei deinem Problem zu helfen. Ich wüsste gar nicht warum.

Und tu mir einen Gefallen: Versuch nicht absichtlich Rechtschreibfehler zu machen :roll: Man merkt sofort, dass die absichtlich gemacht wurden.

misterx 15. Aug 2005 17:38

Re: eine passwort abfrage vor dem prog start
 
also das mit gRO?SCHREIBUNG sry habe ferseentlich auf knopf gedrükt und die fehler das ist net absichtlich bin so schlecht warum solte ich mir die mühe mache die fehler zu machen ?

Pr0g 15. Aug 2005 17:40

Re: eine passwort abfrage vor dem prog start
 
Vielleicht damit anderen den Post besser lesen können? Bei deinem Alter (wenn die Angabe stimmt) sollte man sowas erwarten können. :gruebel:

sECuRE 15. Aug 2005 18:28

Re: eine passwort abfrage vor dem prog start
 
Hi,

hmm, war MisterX nicht derjenige, der diese Niveaudiskussion ausgelöst hat? Wieso darf der schon wieder hier posten?

cu

alcaeus 15. Aug 2005 18:32

Re: eine passwort abfrage vor dem prog start
 
Zitat:

Zitat von sECuRE
hmm, war MisterX nicht derjenige, der diese Niveaudiskussion ausgelöst hat? Wieso darf der schon wieder hier posten?

Solche Aussagen behaltest du in Zukunft bitte fuer dich. Es steht jedem frei hier zu posten.

Im allgemeinen moechte ich jeden, der nicht einen sinnvollen Tipp zum Thema hat bitten, einfach nichts zu sagen. Ihr muesst nicht jedes Thema von MisterX als Anlass nehmen, auf ihm rumzuhacken. :roll:

Greetz
alcaeus

ichbins 15. Aug 2005 18:36

Re: eine passwort abfrage vor dem prog start
 
Liste der Anhänge anzeigen (Anzahl: 1)
Du kannst auch in der form1.create das machen (form2 ist das Passwortfenster. Das erstellst du unter Datei -> Neu -> Formular):

Delphi-Quellcode:
procedure tform1.form1create(sender:tobject);
begin
  form2:=tform2.create(self);
  form2.showmodal;
end;
in die Form2 tust du dann einen Edit rein, der hat die Eigenschaft PASSWORDCHAR, wenn du da ein Zeichen reintust, wird der Edit.Text nur noch in Sternen angezeigt oder was auch immer.

Falls dann 3 mal das falsche Passwort eingegeben wurde, rufst du

Delphi-Quellcode:
application.terminate //Anwendung beenden
auf. Das Passwort schreibst du dann in eine Konstante oder so.
Dann brauchst du noch das:

Delphi-Quellcode:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if edit1.text<>passwort then action:=canone;
end;
Im Anhang ein D7-Beispiel


//edit: Ich sollte vielleicht noch sagen, das das Kennwort in meinem Bsp 'passwort' lautet.

Zacherl 15. Aug 2005 18:44

Re: eine passwort abfrage vor dem prog start
 
Das Kennwort evtl. noch so in etwa festlegen:

Delphi-Quellcode:
var pw1, pw2, pw3, pw4: string;
.
.
.
pw1 := 's';
pw2 := 'e';
pw3 := 'c';
pw4 := 'u';
kennwort := pw1+pw2+pw3+'re';
Dann ist die Chance, dass jemand das Kennwort im Kompilat erkennen kann niedriger.

Florian

SubData 15. Aug 2005 18:57

Re: eine passwort abfrage vor dem prog start
 
Zitat:

Zitat von Florian Bernd
Delphi-Quellcode:
var pw1, pw2, pw3, pw4: string;
pw1 := 's';
pw2 := 'e';
pw3 := 'c';
pw4 := 'u';
kennwort := pw1+pw2+pw3+'re';

Dürfte in dem Beispiel der Compiler nicht die Variablen rausoptimieren und ne Konstante draus machen?

Edit: Beitrag ein wenig verkleinert...

ichbins 15. Aug 2005 19:09

Re: eine passwort abfrage vor dem prog start
 
Ich habe gerade einen kleinen Algorithmus zur Passwortverschlüsselung geschrieben. Er verschlüsselt das Passwort mit sich selbst in einem XOR-Verfahren:

Delphi-Quellcode:
function encodepassword(password:string):string;
var
  i:integer;
begin
  result:='';
  for i:=1 to length(password) do
    result:=result+char(byte(password[i]) xor byte(password[length(password)+1-i]));
end;

function passwordisok(password,encodedpassword:string):boolean;
var
  i:integer;
begin
  result:=true;
  for i:=1 to length(password) do
    result:=result and (encodedpassword[i]=char(byte(password[i]) xor byte(password[length(password)+1-i])));
end;
In einem anderen selbstgeschriebenen Programm muss das Passwort mit ENCODEPASSWORD verschlüsselt werden. Das was rauskommt dann im Programm als Konstante speichern:
Delphi-Quellcode:
password='encodepassword('abc')'
Dann im Programm folgend verwenden:

Delphi-Quellcode:
if passwordisok(edit1.text,password) then
  passwortok
else
  passwortfalsch;

Pr0g 15. Aug 2005 21:26

Re: eine passwort abfrage vor dem prog start
 
Speichere doch einfach einen Hash des Passworts in das Programm, dann wird eh niemand an das Passwort kommen und geht wohl mit am schnellsten.

misterx 16. Aug 2005 15:08

Re: eine passwort abfrage vor dem prog start
 
Zitat:

Zitat von Pr0g
Hier nen (sehr) simples Beispiel:
Delphi-Quellcode:
program Project1;

uses
  Forms,
  Dialogs, // Fuer die InputBox
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  // Passwortabfrage
  if InputBox('Passwortabfrage', 'Bitte Passwort angeben', '') <> 'geheim' then
    halt;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Edit: Mit einer einfachen Schleife kommst du auch auf drei Versuche:
Delphi-Quellcode:
program Project1;

uses
  Forms,
  Dialogs, // Fuer die InputBox
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

var
  i: Integer; // Fuer die Schleife

begin
  Application.Initialize;
  // Passwortabfrage
  for i := 0 to 2 do
  begin
    if InputBox('Passwortabfrage', 'Bitte Passwort angeben', '') = 'geheim' then
      break;
    if i = 2 then
      halt;
  end;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Anstelle der InputBox bietet sich natürlich ein eigener Dialog an, welcher über den ShowModal aufruf die Eingabe zurückgibt.



wen ich das mache dan geht das prog nicht an ich gebe das richtige pass ein es tauch immer wieder auf :?: :?:

Die Muhkuh 16. Aug 2005 15:12

Re: eine passwort abfrage vor dem prog start
 
Fukntioneirt dch gebe ich driemal dsa falsche pass ien dan beendet sihc dsa program wider gebe ich das richtige pass ein dan funktioneirt allse. :roll:

Nochmal auf deutsch:

Funktioniert doch, gebe ich dreimal das falsche Passwort ein, dann beendet sich das Programm. Gebe ich das richtige Passwort ein, dann funktioniert alles.

misterx 16. Aug 2005 15:49

Re: eine passwort abfrage vor dem prog start
 
ja das mit beenden geht ja aber wen ich das richtige pass eingebe startet er das haupt prog nicht

brechi 16. Aug 2005 16:00

Re: eine passwort abfrage vor dem prog start
 
misterrx würt mic h jezt mal interesiernen wleches pwasswortg du iengisbt

TeronG 16. Aug 2005 16:07

Re: eine passwort abfrage vor dem prog start
 
Zitat:

Fukntioneirt dch gebe ich driemal dsa falsche pass ien dan beendet sihc dsa program wider gebe ich das richtige pass ein dan funktioneirt allse.
Zitat:

misterrx würt mic h jezt mal interesiernen wleches pwasswortg du iengisbt
*kopfschüttelnd* sowas hätt ich in der DP nun wirklich nicht erwartet ... tztztz

EDIT: sorry :oops: war voll OT

RavenIV 5. Sep 2005 13:26

Re: eine passwort abfrage vor dem prog start
 
Zitat:

Zitat von ichbins
Ich habe gerade einen kleinen Algorithmus zur Passwortverschlüsselung geschrieben. Er verschlüsselt das Passwort mit sich selbst in einem XOR-Verfahren:

deine funktion passwordisok(...) hat einen fehler:
wenn das zu prüfende Passwort (password) leer ist, gibt die Funktion TRUE zurück.
Das ist eine Sicherheitsleck, falls leere Passwörter unerwünscht sind.

gruessle


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz