Thema: Delphi CD-Key sieht dumm aus...

Einzelnen Beitrag anzeigen

A-M-X

Registriert seit: 29. Sep 2005
Ort: Karlsruhe
152 Beiträge
 
#1

CD-Key sieht dumm aus...

  Alt 30. Dez 2005, 14:15
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;
  Mit Zitat antworten Zitat