AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

In Schleife Passwörter erzeugen

Ein Thema von nieurig · begonnen am 10. Mai 2004 · letzter Beitrag vom 15. Mai 2004
Antwort Antwort
nieurig

Registriert seit: 26. Apr 2004
113 Beiträge
 
Delphi 6 Professional
 
#1

In Schleife Passwörter erzeugen

  Alt 10. Mai 2004, 13:34
Hallo Leute,
ich sitze nur seit 2 Stunden und suche nach dem Grund ... und finde keinen.

Ich habe eine Testfunktion geschrieben, um die Verschlüsselung von Passwörtern in meinem Programm zu testen. Die Funktion erstellt automatisch neue Passwörter, speichert diese verschlüsselt in der DB (auch schon ohne Speichern versucht) und liest sie wieder ein.

Mein Problem ist nun, dass in der for-Schleife aus irgendeinem Grund keine neuen Passworte gebildet werden. Wenn ich die Passwörter in eine Datei schreibe, unterscheiden sich nur die ersten zwei Zeilen. Die letzten 48 Vergleiche finden meist mit dem gleichen Passwort statt. Wieso bloß?

Ach ja, wenn ich an irgendeiner Stelle in der Schleife eine MessageBox anzeige, klappt es wie gewünscht. Ich peile nicht warum.

Ich danke schon im Voraus für Eure Hinweise.
Niels



Code:
procedure TFLogin.Button3Click(Sender: TObject);
var TestPW, Doppel : String; i:Integer;
    dat : TextFile;
begin
  AssignFile(dat,'C:\Fehlerhafte.txt');
  rewrite(dat);
  randomize;
  for i := 1 to 50 do begin
    TestPW := '';
    while Length(TestPW) < 26 do
      TestPW := TestPW + char( Random(210)+30 );

    write(dat,inttoStr(i)+'-'+TestPW + '->');
    saveBenutzerPW('TestUser',TestPW);

    doppel := getNutzerPW('TestUser');
    write(dat,doppel);
    if Doppel = TestPW then writeln(dat,'*OK*')
                       else writeln(dat,'*--*');
  end;
  closefile(dat);
  inpName.Text := 'Fertig';

end;
Die aufgerufene Procedure hat folgenden Funktionskopf:

Code:
procedure saveBenutzerPW(BenutzerName, Kennwort :String);
und dürfte ja wohl keinen Einfuss auf den Wert der lokalen Variablen TestPW haben – oder?
Erspare Dir die Gedanken über ungelegte Eier !!!
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: In Schleife Passwörter erzeugen

  Alt 10. Mai 2004, 13:36
Ich peil deinen code auch nicht, könntest du ein paar Kommentare reinmachen oder getNutzerPW und saveNutzerPW auch noch Zeigen?
  Mit Zitat antworten Zitat
nieurig

Registriert seit: 26. Apr 2004
113 Beiträge
 
Delphi 6 Professional
 
#3

Re: In Schleife Passwörter erzeugen

  Alt 10. Mai 2004, 13:56
Hi Dax,
ich hatte nicht gedacht, das die paar Zeilen SO unübersichtlich sein könnten. Nun denn ...

Ach ja, der Code in der Procedure kann keinen Einfluss haben.
Code:
procedure saveBenutzerPW(BenutzerName, Kennwort :String);
Deshalb habe ich ihn nicht gezeigt.


Niels



Code:
procedure TFLogin.Button3Click(Sender: TObject);
var TestPW, Doppel : String; i:Integer;
    dat : TextFile;
begin
  // Öffnen eine Textdatei
  AssignFile(dat,'C:\Fehlerhafte.txt');
  rewrite(dat);

  // Schleife erzeugt 50 Passwörter
  randomize;
  for i := 1 to 50 do begin

    // Erzeugen eines Passwortes
    TestPW := '';
    while Length(TestPW) < 26 do
      TestPW := TestPW + char( Random(210)+30 );

    // Schreiben des Passwort in Datei und in DB
    write(dat,inttoStr(i)+'-'+TestPW + '->');
    saveBenutzerPW('TestUser',TestPW);

    // Lesen des Passwortes aus DB und schreiben in Datei
    doppel := getNutzerPW('TestUser');
    write(dat,doppel);

    // Vergleich, ob beide gleich sind
    if Doppel = TestPW then writeln(dat,'*OK*')
                       else writeln(dat,'*--*');
  end;
  // Datei schließen
  closefile(dat);
  inpName.Text := 'Fertig';

end;
Erspare Dir die Gedanken über ungelegte Eier !!!
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#4

Re: In Schleife Passwörter erzeugen

  Alt 14. Mai 2004, 23:32
du solltest den fehler einkreisen, d.h. eine zeile nach der anderen auskommentieren, bis es funzt, oder gar nichts mehr tut, dann hast du schon mal die zeile, in der es hakt


denn ich glaube das du am ende dieses
if doppel=Passwd ... weglassen kannst, da es wahrscheinlich nix damit zutun hat
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
eroe

Registriert seit: 15. Mai 2004
Ort: Brandenburg
31 Beiträge
 
#5

Re: In Schleife Passwörter erzeugen

  Alt 15. Mai 2004, 14:03
ich hab zum testen mal den ganzen schnickschnack, den du für deine verwendung brauchst, rausgenommen, hatte also nur noch folgenden code

Code:

procedure TForm1.Button1Click(Sender: TObject);
  var TestPW, Doppel : String; i:Integer;
    dat : TextFile;

begin
 
  AssignFile(dat,'C:\Fehlerhafte.txt');
  rewrite(dat);
  randomize;
 
  for i := 1 to 7 do
    begin
      TestPW := '';
      while Length(TestPW) < 26 do
        TestPW := TestPW + char( Random(210)+30 );
 
      write(dat,inttoStr(i)+'-'+TestPW + '->');
    end;

  closefile(dat);

end;
und siehe da, es funktioniert
meine 'Fehlerhafte.txt' sah wie folgt aus :

Code:

1-’KV íê0tyµ²¸R')b}`äÈÂ#¶/,é->
2--Ìb°Q°é%¡7¡^Åá´!K±¹~,:¹8->
3-,HÖ6aÞvÄy½Œak«ÄÉá9ĆN·nŸK->
4-T€—áèLq:—²cƒ:ÄÒ»6©Õˆ×j½¼Å->
5-"-½D¾’^H-’²Ö‚¿o ¿wÎeçu5Ó¤.->
6-®ØqŸ›Nyä˜ÆÊY"N·„6iª,Jo×7¶->
7-0kRš|tLKÔ¦UŒÕÛ5³SZÄ\.\Pq*->
also denk ich mal, liegt der fehler irgendwo bei deinen ganzen vergleichen mit dem 'soll'-pw oder so ..
"Der ganze Rummel um die Emanzipation hat nichts daran geändert, dass Frauen sich hübsch machen um Männern zu gefallen"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:36 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