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 !