Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Registriernummer generieren Delphi und PHP (https://www.delphipraxis.net/7983-registriernummer-generieren-delphi-und-php.html)

wb32 26. Aug 2003 10:40


Registriernummer generieren Delphi und PHP
 
Hallo alle zusammen,

vorab Respekt an einige unserer Member (Assarbad, negaH) ich habe mal etwas in anderen Threads gelesen zum Thema Passwort, Programme sichern usw...

Genau dazu meine Frage, ich versuche es so exakt wie möglich darzustellen...

Ein Partnerprogramm über das Software angeboten wird. Wer möchte kann sich dort anmelden, wird Wiederverkäufer und bekommt eine eindeutige Webmaster ID z.b. WMID-123...

1. mit dieser ID schickt er Kunden auf die Seite www.seite.de/index.php?wmid-123
2. der Kunde downloadet auf der Seite ein Delphi-Programm xy.exe

Problem 1:
Es muss nun registriert werden das dieser Kunde von wmid-123 geworben wurde??? Idee-> aus WMID-123 einen Teil des später folgenden Aktivierungsschlüssels generieren und vor dem Download anzeigen lassen, der Kunde muss die ID aufschreiben

3. Kunde hat xy.exe heruntergeladen und startet sie
4. programm fragt nach Aktivierungsschlüssel (siehe Problem 1)
5. kunde gibt aktivierungsschlüssel ein, programm generiert aus schlüssel und Festplatten ID einen Code Beispiel wmid-123-1245H5
6. xy.exe sichert wmid-123-1245H5 in reg.ini Datei eventuell bereits verschlüsselt
7. programm ist nur eingeschränkt nutzbar da nicht freigeschaltet
8. zum freischalten muss kunde bezahlen wird auf eine PHP Seite geleitet mit dem code der aus reg.ini gelsen wird(www.seite.de/reg.php?wmid-123-1245H5)
9. php Seite generiert daraus eine gültige Serial die in delphi nach der eingabe verglöichen werden kann

programm freigeschaltet und voll nutzbar

Problem 2:
ein sicherer Algorithmus der in PHP und in Delphi funktioniert

???

Ich bin mal gespannt ob jemand dabei behilflich sein kann *danke*

Alexander 26. Aug 2003 13:26

Re: Registriernummer generieren Delphi und PHP
 
Kenne mich zwar auf diesem Gebiet nicht sonderlich aus, aber kuck dir mal md5 (siehe zb php.net) an, ist glaube ich sehr sicher, alledings gibt es das so nciht in Delphi....
Aber es wäre vielleicht besser sich was eigenes auszudenken..

wb32 26. Aug 2003 15:07

Re: Registriernummer generieren Delphi und PHP
 
md5 geht in delphi fällt aber aus weil die generierte zahl zu lang wäre... man muss immer daran denken das auch weniger versierte user vorm rechner sitzen :)

Alexander 26. Aug 2003 15:08

Re: Registriernummer generieren Delphi und PHP
 
MD5 geht in Delphi? Mhm auch mit der Personal?

Phoenix 26. Aug 2003 15:11

Re: Registriernummer generieren Delphi und PHP
 
Alex: Du kannst mit der Personal _alles_ machen was auch mit der grossen geht. Du musst viele der fehlenden Komponenten nur selber schreiben :)

Und MD5 ist ein öffentlicher Algorithmus, den jeder der ein wenig Mathe kann auch nachcoden kann :)

Alexander 26. Aug 2003 15:17

Re: Registriernummer generieren Delphi und PHP
 
Phönix: Eigentlich schon, die Frage war nicht so elegant gestellt, ich meinte nur ob es standmäßig drinne ist ;-)

Zitat:

Und MD5 ist ein öffentlicher Algorithmus, den jeder der ein wenig Mathe kann auch nachcoden kann
Das wusste ich ncoh nicht. Ich habe ihn immer nur für mein Loginsystem meiner Seite zum veRschlüsseln der PAsswörter benutzt, sonst weiß ich nicht viel über ihn ;-)

Danke für Aufklärung :mrgreen:

wb32 26. Aug 2003 15:17

Re: Registriernummer generieren Delphi und PHP
 
oder googeln :)

hier googelts


1. Seite gibts dafür ne unit die das selbe ergebniss wie in php liefert

Alexander 26. Aug 2003 15:19

Re: Registriernummer generieren Delphi und PHP
 
Jupp mache ich gerade schon :mrgreen:
Allerdings nur nach MD5 :D

Alexander 26. Aug 2003 15:29

Re: Registriernummer generieren Delphi und PHP
 
Habe gerade kurz was über den "Vorgänger" von MD5 gelseen, er zeichnete sich dadurch aus, dass er kürzer war.
Es ist der DES Verschlüsselungsalgorithmus.
Vielleicht ist er ja interessant für dich ;-)

wb32 26. Aug 2003 15:39

Re: Registriernummer generieren Delphi und PHP
 
hmm muss ich mal schauen hat jemand ne idee zum ersten problem ?

Taladan 26. Aug 2003 16:57

Re: Registriernummer generieren Delphi und PHP
 
Ich weiß zwar nicht, wie lang diese Schlüssel sind, aber ist auch relativ egal, solange der Nutzer eine Möglichkeit hat, diesen per copy&paste in ein ensprechendes Formular zu packen. Bei dem evtl. bekannten Ultima Online gibt es ein legales Zusatztool, wo der Seed (also der vorschlüssel, aus dem dann der schlüssel dann berechnet wird) mehr als 25 Stellen hat. Der Schlüssel ist ähnlich lang. Es wird sogar darauf hingewisen, das es die Variante Copy&Paste doch die sicherste ist.
Also spicht nichts gegen wirklich lange Schlüssel. (einige bekannte Brennerprogramme haben Schlüssel weit >100 Zeichen und bei denen funktioniert es auch).

Denk an die Onlineabfrage registrieter Schlüssel (in verbindung mit Seed), für welche die den Schlüssel verlohren haben. Erspart viele E-Mails.

WooDWorkeR 27. Aug 2003 13:35

Re: Registriernummer generieren Delphi und PHP
 
oder wenn man mal ganz dum im Google md5.pas eingibt.

kommt man dahin

http://www.fichtner.net/delphi/md5.delphi.phtml


wenn man wa kurzes haben will kann man ja die funktion crc32 von PHP nutzen.
müsste halt nur mal nachsehen wie man das in Delphi umsetzt gibts bestimmt auch eine .pas datei



ps. was mir noch eingefallen ist. was hindert die leute daran es zu decompielieren udn herauszufinden wie der schlüssel genereirt wird.
und ihn dan selber nachzu generieren. ???

The-X 31. Aug 2003 00:50

Re: Registriernummer generieren Delphi und PHP
 
Liste der Anhänge anzeigen (Anzahl: 1)
HI leutz,

Hab da mal vor Monaten eine Unit bezüglich MD5 für Delphi gefunden...

Luckie 31. Aug 2003 06:06

Re: Registriernummer generieren Delphi und PHP
 
Darf ich euch mal kurz unterbrechen? Ja? Ddanke.

Also MmD5 habe ich bisher immer für einen Hash gehalten, ob man dabei von einer Verschlüsselung reden kann, bin ich mir nicht sicher. CRC ist auf alle Fälle nur eine Prüfsumme.

UInd was MD5 in Delphi angeht: Da war noch nie eine fertige Komponente dabei, so viel ich weiß.

Alexander 31. Aug 2003 06:57

Re: Registriernummer generieren Delphi und PHP
 
Stimmt MD5 ist ein Hash, aber eigentlich genau das richtige wenn man Passwörter verschlüsseln will, weil man sie nicht wieder entschlüsseln kann.

PS: Herzlichen Glückwunsch, Luckie ;-) :party:

negaH 31. Aug 2003 12:38

Re: Registriernummer generieren Delphi und PHP
 
Zitat:

Stimmt MD5 ist ein Hash, aber eigentlich genau das richtige wenn man Passwörter verschlüsseln will, weil man sie nicht wieder entschlüsseln kann.
Tja, und da wiedersprichst du dich auch schon. Wenn man was Ver-schlüsselt heist das das man dazu 1.) einen Schlüssel benötigt und 2.) auch wieder Ent-schlüsseln kann. Somit ist MD5 keine Verschlüsselung sondern eine Einweg-Funktion, oder genauer gesagt eine One-Way-Trap-Door Funktion. Im Gegensatz zu CRC = Cyclic Redundance Checks deren Sicherheitfeatures rein garnischt mit einer Hash Funktion zu tun haben.

Man KANN mit MD5 aber tatsächlich verschlüsseln, so wie mit jeder Funktion die eine Art von "Zufallsdaten" erzeugt. Dazu wird MD5 mit einem Passwort als Startwert initialisiert. Nun wird periodisch vom Hashoutput ein Hashoutput erzeugt. Die so entstehende Sequenz von Bytes kann per XOR mit der Message verknüpft werden. Somit entsteht eine Stromverschlüsselung ähnlich wie RC4 (Netspace) usw. Allerdings von solchen Methoden halte ich absolut nichts. Denn ein Verschlüssleungsalgo. ist entwickelt wurde um zu Ver-/Entschlüsseln, eine Checksumme ist entwicklt wurden um Prüfsummen zu erzeugen die man zurückrechnen kann um ein fehlerhaftes Bit zu korregieren, und eine Hash Funktion ist entwickelt worden um eine sicheren binären Fingerabdruck beliebiger Daten zu erzeugen. D.h. alle 3 Algo. Klassen sind voneinander unabhängig und erfüllen jede für sich komplett andere Aufgaben.

Statt also einen Algo. zu vergewaltigen damit er das gleiche macht wie eine andere Algo. Klasse, sollte man nur den Algo. auswählen der exakt für die Zielsetzung konzipiert wurde.

Für die Sicherung von Passwörtern + Logins ist es am besten mit Hashfunktionen + einen Salt zu arbeiten. DES als Verschlüsselung wird beim .htaccess eg. UNIX Crypt verwendet und ist eben nicht so sicher wie eine Hashfunktion.

Gruß Hagen

PS: wer UNIX-Crypt kennt sieht auf Anhieb das ein Salt von 64*64 = 4096 Kombinationen einfach lächerlich ist. Dann wird noch dieser Salt dazu benutzt um die internen Register (SBox) von DES zu manipulieren, was einem Eingriff in die Sicherheitsrelevanten Funktionen vom DES gleichkommt. Es beudeutet also das der Salt mit hoher Wahrscheinlichkeit den DES Algo. abschwächt. Dazu kommt noch die schächste DES Verschlüsselung mit 56 Bit Stärke und eben der Fakt das als Login Überprüfung dieses Verfahren ein absolutes Fehldesign ist.
Leider setzt sich oft das Schlechtere durch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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