![]() |
wie einmaliger Lizenz key erstellen für mein proggi...
Hallo Leute,
habe da eine Anfänger Frage für euch... Ich habe mir eine kleine Anwendung erstellt und bin eigentlich soweit fertig damit. Ich habe im Google auf einer Seite gelesen dass es möglich wäre eine "CD Key" funktion einzubinden. Habe hier folgender Code gefunden:
Delphi-Quellcode:
Wie und wo muss ich nun dies einbinden damit ich einen CD Key erhalte und den auch eingeben kann?
function CDKey(Seed:String): String;
const Key1: Array[0..9] of Char = ('2','5','8','9','5','a','1','3','6','7'); Key2: Array[0..9] of Char = ('8','3','4','0','1','7','x','9','3','9'); v baergi ni: integer; 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; ... if CDKey(Copy(Eingabe.Text,1,4)) = Eingabe.Text then Caption := 'Richtig' else Caption := 'falscher Key'; Mir geht es hauptsächlich darum, um zu verstehen wie und wo dieser auch abgelegt wird. Also zum bsp. wenn ich nun einen solchen Code (irgendwie erstelle, wie auch immer???) habe und den auch eingebe, wird dieser in der Windows Registry abgelegt? oder muss dieser jedesmal neu eingegeben werden wenn ich meine Applikation starte? ThX schon mal Duffy Duck |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
Die Funktion gibt dir nur einen Key als String zurück, Abspeichern und Überprüfung musst du selbst noch einbauen. Für den Zugriff auf die Registry gibt es die Klasse
![]() |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
hmmmmm, im diesem fall also eine grössere sache so etwas zu realisieren...??? Also das mit der Key erstellung und einmaliger abfrage und Registry eintrag oder?
Duffy Duck |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
Ja, es ist schon etwas aufwändig. Aber man sollte es mal gemacht haben, damit man sieht was da an Arbeit hinter steckt. Außerdem ist es immerwieder schön, wenn man fragt ob es denn nun sicher ist. :mrgreen: Aber du musst selbst wissen, ob du es versuchen willst. Ich kann nur sagen: Mach´s einfach mal. ;)
MfG freak |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
Nun ja, die sicherheit kommt erst mal an 2ter stelle....
wichtig ist wie kann ich nun vorgehen?? hat jemand einen Tip für mich, der auch für einen Anfänger verständlich ist? ThX Duffy Duck |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
Zitat:
prinzipiell gibts da viele verschiedene vorgehensweisen... du musst dich erstmal für eine entscheiden ;) 1. eingabe des usernamen -> daraus wird der key berechnet, in einem geheimen verfahren, das nur du kennst. der user gibt seinen namen ein und muss den zu dem namen passenden key eingeben 2. du nimmst dir irgendeinen wert, der mit ziemlicher wahrscheinlichkeit für den computer einmalig oder fast einmalig ist oder kombinierst ein paar werte, und berechnest daraus den key. allerdings brauchst du dann einen webserivce, da die daten ja an dich übermitelt werden müssen, damit du (oder dein service) den key daraus berechnen können, den du dann dem user wiederum zukommen lässt, der diesen in dein programm eingibt 3. dein user muss sich online bei dir anmelden und bekommt auf diese weise einen key. dann startet er deine anwendung, und diese verbindet sich wiederum mit deinem service, der user gibt seine zugangsdaten ein, bingo usw usw... es gibt noch viele andere möglichkeiten 8) also wenn du sagen könntest, welche du machen willst, kann man dir auch detaileirter weiterhelfen ;) |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
Zitat:
Im prinzip reicht mir punkt 1 vollkommen aus.... Duffy Duck |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
Zitat:
1. brauchst du einen algorithmus, der aus irgendeinem wert einen anderne wert berechnet, möglichst so, dass man nicht dahinter kommt ;) da kannst du einerseits z.b. einfach hashverfahren wie md5 oder sha verwenden, indem du den namen des benutzers mit einem geheimen suff oder präfix versiehst und diesen wert einfach hashst, dann erhältst du sozusagen den key, oder aber du übergibst den namen der funktion, die du schon im ersten beitrag erwähnt hast, die erstellt einen key der etwas mehr nach registrierungskey aussieht ;) allerdings solltest du dann unbedingt das key1 und das key2 array verändern (also die werte), da sonst evtl jemand auf die idee kommen könnte, dass du diesen algorithmus wie er ist aus dem internet verwendest. alternativ oder besser zuätzlich kanst du auch hier die eingabe mit einem geheimen suff und oder präfix versehen, bevor du ihn der funktion übergibst. 2. brauchst du irgendeine möglichkeit, wie deine benutzer an den key kommen, z.b. eine onlineanwendung, die ebenfalls den key berechnen kann, und ihn anch bezahlung oder registrierung dem user zusendet. 3. dann musst du nu im programm überprüfen, ob bereits ein key eingegeben wurde, wenn ja, dann lässt du das registrierungsformular aus, wenn nein, zeigst du es an. dann überprüfst du wiederum, ob der eingegeben key zum eingegeben namen passt (indem du den namen der funktion übergibst und schaust, ob das ergebnis gleich der keyeingabe des users ist). ist dies der fall, speicherst du den key irgendow ab, möglichst so, dass man ihn nicht findet, ist die eingabe falsch, sagst du das dem user :) ein satz zum abspeichern des keys: auch hier gibts verschiedene möglichkeiten: 1. die registry 2. in einer ini datei 3. in einer xml datei 4. inb irgendeiner datei, hauptsache dien prog findet sie dabei kannst du den key getrost als plaintext, soll heissen in unverschlüsselter form, abspeichern, da er ja, wenn er in der registry oder sonstwo auftaucht bereits vom user korrekt eingegeben wurde und somit bekannt ist. den wert, den deine überprüfungsfunktion im prog erstellt, den solltest du allerdings niemals nie irgendwo abspeichern ;) beachte allerdings, dass diese methode weder sehr sicher noch "effizient" ist: man kann unbegrenzt viele anwendungen mit einem richtigen namen/schlüssel paar registrieren, aber für den anfang dürfts reichen ;) |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
puhhh für einen Anfänger wie mich, hört sich das wie eien Lawine die auf mich zukommt. Aber egal, ich setze mich mal ran und versuche deinen Tip umzusetzen...
Vorerst mal hast mir damit sehr geholfen... Mal sehen wie es mit den Coden klappt...! ThX Duffy Duck |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
Zitat:
den algorithmus, der dir den schlüssel berechnet hast du ja auch sschon, und bei der ganzen angelegenheit dürfte der das komplexeste überhaupt sein. alles andere sind peanuts :) |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
Erstmals vielen Dank an Meflin für seine ausführliche Beschreibung....
komme nun aber nicht wirklich recht weiter mit dem ganzen. den unten stehender Code (den ich von irgendwo, ein wenig abgeändert habe) generiert mir nun meinen Key (zufall) denn ich auch brauche. (Sicherheit ist im mom nicht so wichtig) Wie kann ich es nun bewerkstelligen, dass ich die Abfrage im meinem Programm erhalte? Heisst: Prog. wird gestartet, die Abfrage für den Key soll kommen, wenn nicht Registriert dann eintrag in die Windows Registry, wenn schon Registriert keine weiteren meldungen und Prog. kann ohne weiteres gestartet werden...
Delphi-Quellcode:
unit Code;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, Mask, DBGrids; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; GroupBox1: TGroupBox; Label6: TLabel; Label7: TLabel; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} function RandomPassword(PLen:Integer):String; var str:String; begin Randomize; //string with all possible chars str:='ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'; Result:=''; repeat Result:=Result+str[Random(Length(str))+1]; until(Length(Result)=PLen) end; procedure TForm1.Button1Click(Sender: TObject); begin //generate a password with 16 chars Label1.Caption:=RandomPassword(4); Label2.Caption:=RandomPassword(4); Label3.Caption:=RandomPassword(4); Label7.Caption:=RandomPassword(4); end; procedure TForm1.Button2Click(Sender: TObject); begin close; end; procedure TForm1.FormCreate(Sender: TObject); begin end; end. noch etwas zu diesem Code, hier werden lediglich zufalls zahlen generiert. Wäre es mit diesem Code auch möglich die Zahlen durch einen Namen zu generieren lassen? ThX Duffy Duck PS: Für dich Meflin wird es Peanuts sein, für mich ist es bis hierher schon ein risiges Erfolgserlebnis... :-))) |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
Hi,
verwende doch einfach den code aus deinem ersten beitrag ;) dem kannst du nämlich einen string übergeben (den namen des suers) und aus dem selben string wird dieser algorithmus immer denselben wert berechnen und zurückgeben, soll heissen (nur als beispiel) wenn du hans eingibst kommt wurscht raus, und zwar jedesmal :) wenn du allerdings wiener eingibts, liefert die funktion nicht wurscht sondern schnitzel, und das auch immer, wenn man wiener eingibt (das tut die obige funktion natürlich nicht, nur zur veranschaulichung ;) ). also mach doch erstmal ne anwendung mit 2 editfeldern, in den du dne user seinen namen und seine serial eingeben lässt, und mache eine einfache überprüfung ala messagebox dieser key ist gültig oder nicht gültig :) |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
ich könnte Weinen vor Wut, jetzt habe ich gar nichts mehr im Griff... :wall: seit Stunden versuche ich auf einen Grünen zweig zu kommen und falle immer wieder runter. :cry:
Wenn ich nun den Code in eine leere Anwendung einfüge, und ein Edit Feld erstelle und dann auf F9 gehe, steht im "Caption" erst dann "Richtig" wenn ich auch im Feld den Wert "Edit1" mit backspace entferne... Sobald ein Wert eingegeben wird heisst es "Falscher Key"! (Denke, soweit sollte es ja gut sein). Wo kann ich aber den Key eingeben also zum bsp. einen Namen, damit es auch mit "Richtig" bezeichnet wird? Habe wirklich keinen blassen schimmer wie das gehen soll... ThX Duffy Duck |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
gutem morgen,
ich will ja nix sagen... aber welcher deiner "hochwertigen" programme ist es wert, das du sie mit einer serial schützen musst. bitte entschuldige, aber wenn du noch nicht einmal aus der funktion entnehemn kannst das du deinen "key" in eingabe.text schreibst, dies kann (meist) eine edit combobox oder memo sein, versuche es doch erstaml mit den grundlagen anstatt den dem anwedner deines programmes mit einer eingabe von zeichen zu nerven, die sich mit dem einen oderer andere trick ja meist ohnehin umgehen lassen. nix für ungut.. :smile: gruß harry |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
Zitat:
Nun, ich weiss ich sollte wirklich bei den Grundlagen beginnen. Aber um zu verstehen, sollte man probieren, nur so Denke ich versteht es man doch am besten..... oder? Wie gesagt, es geht mir nicht darum um ein Programm zu schützen sondern nur um zu verstehen. Und seit ich dieses Forum gefunden habe, glaube ich hier die Beste, sowie eine Profesionelle unterstützung zu bekommen... hoffe ich mal. Manche werden Denken: "Was für ein Anfänger der nicht mal versteht dass er eine eingabe.text oder edit combobox braucht". Wenn Du aber etwas schon hundert mal gemacht hast ist es ja schon selbstverständlich.... :hi: ThX trotzdem Duffy Duck |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
@harry: wenn du nix sagen willst, dann lass es doch einfach ;)
@duffy: ok, du legst auf deine form 2 editfelder, eins nennst du edName, das andere edKey. dann brauchst du noch einen button. du klickst doppelt auf den button und gelangst in die codeansicht, dann fügst du diesen code ein:
Delphi-Quellcode:
vorher musst du noch die cd key function einbinden.
if CDKey(edName.text) = edKey.text then ShowMessage('richtiger key') else ShowMessage('Falscher Key');
dann startest du das prog, gibst deinen namen ein, und einen key, aber dummerweise wirst du feststellen, dass du den key ja selber nicht kennst, und deswegen immer eine falsche eingabe machst ;) also bastelst du dir noch eine 2. anwendung mit einem edit edName und einem label lKey, und wieder einem button den du mit folgendem code versiehst:
Delphi-Quellcode:
auch hier musst du zuerst noch die cdkey function einbinden. mit dem programm kannst du dann für einen namen gültige keys generieren, du solltest es folglich nicht deinen usern zukommen lassen ;)
lKey.Caption := CDKey(edName.text);
mache also damit ein paar testpaare, und teste sie in der ersten anwendung. |
Re: wie einmaliger Lizenz key erstellen für mein proggi...
Hey Meflin
nun fühle ich mich wie ein 5 Jähriger, der sein Weihnachts päckchen endlich öffnen durfte. Denn, genau so, nach deinen Angaben hat es auch (natürlich) funktioniert... :hello: So, jetzt Werte ich mal das ganze aus, um zu sehen was und wo an Daten und informationen übergeben wird... Nochmals ein riesen Dank an Dich Meflin Duffy Duck :hi: :hi: :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz