Einzelnen Beitrag anzeigen

Delphiturbo
(Gast)

n/a Beiträge
 
#39

Re: Keygen mit MD5 um Serial zu generieren !

  Alt 19. Apr 2008, 10:38
wenn ich aber einen anderen wert als Username in Feld Edit1 oder Edit2 eingebe und generiere dann bekomme ich sicher einen anderen 32String !

wie kann ich vergleichen! Es ist sowieso immer ungleich, wenn ich mehrere user habe ?

Wie ich vorher geschrieben habe, ich habe vohrher MD5 oder hash keine Erfahrung gemacht. Das ist mein 1. Versuch

Der "Plackdarke" hat mir zwar einen Code als Beispiel für einen Keygen geschrieben, leider verstehe immer noch nicht, wie der Code ein gültiges Passwort genereriert :
Delphi-Quellcode:
function md5(input: string): string;
begin
  result := md5Print(md5String(input));
end;

function mein_serialgenerator(benutzername: string): string;
var
  mein_md5, mein_prekey, mein_serialkey: string;
const
  // Mögliche Sicherheitslücke: mein_seed kann man aus der EXE herauslesen. Aber ich will es ja einfach halten
  mein_seed := 'ABCD-Produkt-Produktversion-Edition';
begin
  // Dein Benutzername ist jetzt als MD5 festgehalten
  mein_md5 := md5(benutzername);

  // Damit jetzt nicht jeder daran herumspielt und einen eigenen md5 generiert, legst du einen Seed dazu und machst nochmal md5
  mein_prekey := md5(mein_seed + mein_md5);

  // Nun hast du aber 32 Zeichen. Tu das deinen Anwendern bitte nicht an.
  // Nimm die ersten 8 Zeichen meinetwegen. Das ist jetzt dein Serialkey, der aus dem Benutzernamen abgeleitet ist
  mein_serialkey := copy(mein_prekey, 0, 8);

  result := mein_serialkey;
end;

// Kontrolle der Benutzereingabe
function key_gueltig(eigegebener_benutzername, eingegebener_serialkey: String): boolean;
begin
  if LowerCase(mein_serialgenerator(eigegebener_benutzername)) <> LowerCase(eingegebener_serialkey) then
  begin
    result := false;
  end
  else
  begin
    result := true;
  end;
end;
Wie kann der Code ein Passwort erstellen ? ich sehe keine mathematike Funktion !
  Mit Zitat antworten Zitat