Einzelnen Beitrag anzeigen

blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#21

Re: Keygen mit MD5 um Serial zu generieren !

  Alt 17. Apr 2008, 15:24
Zitat von Delphiturbo:
Ich muss 3 Sachen haben : Key, Benutzername, Serial !
Was ist der Unterschied zwischen Key und Serial? Was willst du überhaupt machen? Willst du, dass der eingegebene Benutzername sich im Key/Serial wiederspiegelt?

Zitat von Nuclear-Ping:
Warum arbeitest du auch auf Stringebene, statt auf Binärebene?
Lol, soll der Benutzer jetzt schon einen Binärcode eingeben?

Wenn ich mal einen Vorschlag für ein "einfacheres" System für nicht so erfahrenere Delphi-Benutzer machen darf:

(Code vereinfacht zum Lernen)

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): boolean;
begin
  if LowerCase(mein_serialgenerator(eigegebener_benutzername)) <> LowerCase(eingegebener_serialkey) then
  begin
    result := false;
  end
  else
  begin
    result := true;
  end;
end;
Nicht sonderlich sicher. Aber akzeptabel. Gegen Disassembler ist das Pr0g halt nicht sicher.

PS: Überleg dir, ob du die Hardware des Benutzers miteinfließen lassen willst. Dann wäre Zwangsaktivierung etc. notwendig, was das Ganze ziemlich erschwert. Ist deine Software wirtschaftlich so entscheidend?

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat