AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Key-Prüfung im Programm installieren
Thema durchsuchen
Ansicht
Themen-Optionen

Key-Prüfung im Programm installieren

Offene Frage von "Fritz01"
Ein Thema von Fritz01 · begonnen am 24. Mai 2006 · letzter Beitrag vom 26. Mai 2006
Antwort Antwort
Fritz01

Registriert seit: 22. Mär 2006
Ort: Großenkneten
181 Beiträge
 
Delphi 7 Professional
 
#1

Key-Prüfung im Programm installieren

  Alt 24. Mai 2006, 17:47
Hallo,
zum Thema KeyGenerator wurde ja schon viel geschrieben.

Beim Test funktioniert so

if EdtBenKey.Text = MD5Print(MD5.MD5String(EdtBenName.Text)) then begin
{ mach was, wenn die Nummer richtig ist }
showMessage ('Key ist OK');
end
else
showMessage ('Key nicht OK');
{ mach nichts, wenn die Nummer falsch ist }

Frage : Wie sage das in meinem Programm? Welche Art von Key-Überprüfung, wie wird es im Programm eingebunden?
Habe da was von DLL gelesen, aber wie??? Wer hat das schon hinter sich und kann da helfen?
Fritz01
Fritz
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Key-Prüfung im Programm installieren

  Alt 24. Mai 2006, 17:54
So ganz verstehe ich Deine Frage nicht!
Du hast es doch schon am laufen, oder sehe ich das falsch.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Fritz01

Registriert seit: 22. Mär 2006
Ort: Großenkneten
181 Beiträge
 
Delphi 7 Professional
 
#3

Re: Key-Prüfung im Programm installieren

  Alt 24. Mai 2006, 19:44
Hallo Klaus01,
ja der Generator läuft. Es wird ein Key erzeugt und kann, wie oben beschrieben gestestet werden.
Jetzt möchte ich gerne erreichen, daß ein Programm mit diesem Key und dem entsprechenden Benutzernamen aktiviert werden kann. Eingabe, Vergleich, Programm freischalten (oder auch nicht)
Key und BenName sollte nur einmalig, beim 1. Programmstart erforderlich sein.
Wie geht das?
Fritz
Fritz
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Key-Prüfung im Programm installieren

  Alt 24. Mai 2006, 19:48
Naja, benutzt dein KeyGen einen Algo? Dann musst du nur prüfen, ob die Seriennummer mit dem algo übereinstimmt, also z.B. eine bestimmte Quersumme hat oder so.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Fritz01

Registriert seit: 22. Mär 2006
Ort: Großenkneten
181 Beiträge
 
Delphi 7 Professional
 
#5

Re: Key-Prüfung im Programm installieren

  Alt 24. Mai 2006, 20:10
Algo, Verschlüsselung mit MD5 von Fichtner.

Benutzername eingeben, key wird erzeugt, kann wie folgt getestet werden.

procedure TMainForm.ButtonTestClick(Sender: TObject);
begin
if EdtBenKey.Text = MD5Print(MD5.MD5String(EdtBenName.Text)) then begin
{ Key OK }
showMessage ('Key ist OK');
end
else
showMessage ('Key nicht akzeptiert');
{ Key passt nicht }
end;

habe ich scho oben dargestellt und das funktioniert.

Nun habe ich ein Programm, welches nur nach Eingabe von Benutzername und dem von mir erzeugtem Key (aus diesem BenNamen) freigeschaltet werden soll.
Fritz
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.068 Beiträge
 
Delphi 12 Athens
 
#6

Re: Key-Prüfung im Programm installieren

  Alt 26. Mai 2006, 14:08
Na das ist doch schon der fertige Code (wurde dir aber auch schon gesagt) ... du mußt einfach nur diesen Code in dein Programm einbauen.

Also einfach ein Eingabeformular in dein Programm (mit den 2 Edit und den OK/-Abbrechen-Buttons).
Der wichtige Teil ist ja nur das:
Delphi-Quellcode:
if EdtBenKey.Text = MD5Print(MD5.MD5String(EdtBenName.Text)) then begin
  // hier was machen, wenn passwort OK
end else begin
  // und hier das, was gemacht werden soll, wenn der Code falsch ist
end;
Und was du machen willst, wenn der Key falsch ist, bleibt ja dir überlassen ... Programm beenden, zur Neueingabe auffordern...

PS: dieser Code ist recht "gut", denn jeder kann sich einen einfachen KeyGenerator zu deinem Programm erstellen. also einfach nur ein EditFeld, wo man irgendwas eingibt (was dann halt später bei Benutzername eingetragen werden soll) und kann sich dann mit der selben Funktion inen eigenen Key erstellen.

neuerKey := MD5Print(MD5.MD5String('irgendwas'));
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Fritz01

Registriert seit: 22. Mär 2006
Ort: Großenkneten
181 Beiträge
 
Delphi 7 Professional
 
#7

Re: Key-Prüfung im Programm installieren

  Alt 26. Mai 2006, 15:09
Hallo himitsu,
na, ganz so einfach ist es doch nicht, hab es probiert!
Da kommen die Fehlermeldungen wie MD5Print, MD5, MD5String usw unbekannte Bezeichner! Habe den ges. Generator mit ins Progr. gebaut, damit waren die Fehlermeldungen weg.
Vielleicht geht das auch einfacher, hierzu wäre ich um einen Tipp dankbar.
Nach außen ist das aber nicht zu erkennen!! Es ist halt ein Eingabeformular, welches per Mail zu mir kommt und dann von mir mit dem Schlüssel zurückgeschickt wird.
Frage dazu: Wie sieht es rechtlich aus, wenn ich die MD5.pas mit dem Programm weggebe? Auch wenn es nur Teile daraus sind.
...denn jeder kann sich einen einfachen KeyGenerator zu deinem Programm erstellen.
Mit der nötigen Energie ist alles zu knacken!
Es soll auch nur dem normalen User die unkontrllierte Weitergabe erschweren.
Fritz
Fritz
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.068 Beiträge
 
Delphi 12 Athens
 
#8

Re: Key-Prüfung im Programm installieren

  Alt 26. Mai 2006, 15:16
Diese Functionen/Prozeduren sind ja in einer MD5-Lib enthalten und diese mußt du natürlich mit in dein Programm einbinden (also die entsprechenden Units).

Und da dem MD5 ein fest definiertes Verfahren hinterliegt, welches immer gleich ist, kann man also mit jeder x-beliebigen Lib, welche MD5 kann, einen entsprechenden Key erstellen.
Einzig MD5Print und .MD5String können je nach Lib anders ausfallen, aber das ist egal, da man ja am Ergebnis sieht, was die machen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Key-Prüfung im Programm installieren

  Alt 26. Mai 2006, 15:23
@Fritz,

du kannst ja den Benutzername noch mit einem oder mehreren Strings (den/die nur Du bzw. Dein Programm kennt) verknüpfen
(anhängen, XOR oder sonstwas) und daraus den Hashwert bilden.
Das ist dann zwar kein recht stabiler Schutz, aber immerhin einer.

Denn himitsu hat recht, wenn nur aus dem Benutzernamen der hash gebildet wird
ist es ganz leicht Deinen Schutz des Programms auszuhebeln.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#10

Re: Key-Prüfung im Programm installieren

  Alt 26. Mai 2006, 16:58
Hi Fritz01,

der Hash-Algorithmus selber sollte eigentlich in einem solchen Fall kreativer ausfallen als MD5 zu nehmen. Über was der Hash gebildet wird ist im Endeffekt egal (auch wenn's nur der Benutzername ist). Hier wäre mal die Hausmannskost der Hashalgos angesagt. Schau dir mehrere solcher Algos an und bastele dir einen eigenen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz