Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi CD-Key sieht dumm aus... (https://www.delphipraxis.net/59916-cd-key-sieht-dumm-aus.html)

A-M-X 30. Dez 2005 14:15


CD-Key sieht dumm aus...
 
Huhu!

Ich habe NICHT das Problem , dass das CD-Key-Generieren nicht klappt.

Sondern folgendes:
Ich generiere erfolgreich einen CD-Key (könnt es euch unten mal anschauen)
Nun generiert der mir aber sowas wie '888B' oder 'RRR3' , '222P' usw.
Ein paar Beispiele vom Generator selbst:
3356-996C-883B , 2882-AWWA-1MM1 , 5224-6AAR-311P ,
Immer an der gleichen Stelle sind 2 oder 3 Buchstaben nach dem -
Wie verhindere ich dass? Also dieses doppelte oder sogar 3-Fache?

Hier der Code:
(habe auch Kommentare dazu geschrieben)

Delphi-Quellcode:
// Das hier ist nun zum generieren des Codes selbst
function CDKey(Seed:String): String;
const
  Key1:Array[0..9] of Char = ('T','5','A','9','R','6','C','0','W','7');
  Key2: Array[0..9] of Char = ('4','U','1','8','P','3','B','2','M','8');
var i: integer;
begin
  result := Seed + '-';
  for i:= 1 to length(Seed) do
    result := result + Key1[Ord(Seed[i])-48];
   result := result + '-';
  for i:= 1 to length(Seed) do
    result := result + Key2[Ord(Seed[i])-48];
end;

//Das hab ich mir woher kopiert um ein Zufallspasswort zu erhalten , kein vorgegebenes
function RandomPassword(PLen:Integer):String;
var
  str:String;
begin
  Randomize;
  str:='0123456789';
  Result:='';
  repeat
    Result:=Result+str[Random(Length(str))+1];
  until(Length(Result)=PLen)
end;

//Hier generiere ich das Passwort
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := CDKey(Copy(RandomPassword(4),1,4))
end;

//hier prüfe ich es nochmal , ist aber nicht soo wichtig
procedure TForm1.Button2Click(Sender: TObject);
begin
if CDKey(Copy(Edit1.Text,1,4)) = Edit1.Text then
ShowMessage('Der angegebene CD-Key ist:' + #13 + 'Richtig') else ShowMessage('Der angegebene CD-Key ist:' + #13 + 'Falsch')
end;

brechi 30. Dez 2005 14:31

Re: CD-Key sieht dumm aus...
 
aus den gleichen 4 zahlen am anfang werden auch die gleichen 4 zeichen bei dem 2. und 3. teilstring erstellt

deshalb solltest du schauen, dass keine zahl bei deiner random funktion doppelt vorkommt

Delphi-Quellcode:
function RandomPassword(PLen:Integer):String;
var
  str:String;
  i: integer;
begin
  Randomize;
  str:='0123456789';
  Result:='';
  repeat
    i := Random(Length(str))+1;
    Result:=Result+str[i];
    delete(str,i,1);
  until(Length(Result)=PLen)
end;
z.b. benutzen

A-M-X 30. Dez 2005 14:40

Re: CD-Key sieht dumm aus...
 
Cool danke!!

Echt superschlauköpfe im forum unterwegs :thumb: :thumb: :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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