Seriennummer-Algorithmus entwerfen?
Mike
- php
0 Philipp Grashoff0 Mike0 Marco0 Philipp Grashoff
0 Harry
Hallo,
ich habe ein recht umfangreiches PHP-Script entwickelt und möchte nun über PHP eine Installationsroutine entwerfen.
Ich dachte mir, ich benenne einige PHP-Dateien einfach um (zB Inst001.000) und diese werden bei Ausführung des Installationsscript in ihren richtigen Namen umbenannt. Dies soll aber erst geschehen, nachdem eine Seriennummer eingegeben wurde.
Hat jemand dazu eine Idee oder irgendwas, wie ich einen solchen Algorithmus entwerfen kann? Ich dachte als Beispiel, dass die Seriennummer zB immer 8stellig sein muss und durch 7 teilbar sein muss. Nur bei korrekter Eingabe wird installiert, nach 3 falschen Eingaben wird das Script wieder vom Server entfernt.
Naja... also das wär meine Idee. Nicht 100%ig, aber sie sichert das Teil gegen vermeidliche Raubkopierer. Wer richtig PHP kann, wird in Kürze wissen, wie das Teil funktioniert... aber wer richtig PHP kann, hat es auch nicht nötig, zu kopieren oder? :-)
Für Anregungen/Hinweise oder Links (die mir beim Algorithmus helfen könnten) wäre ich Dankbar.
Grüsse
Mike
Hi,
eine Frage stellt sich mir zu dem Thema:
wer soll eigentlich bei einem Serverseitigen PhP-Script Raubkopieren? Da kommt ja nur jemand in Frage, der Zugriff auf den FTP-Server hat. Dieser wird dann wohl auch die Seriennummer haben, und diese kann man ja einfach mitweitergeben... Ausserdem waere deine Methode mit dem Namensumbenennen ziemlich sinnlos, weil, sobald einmal installiert, haben ja alle Dateien den richtigen Namen und man kann sie alle einfach kopieren. Und auch so, jemand, der ein kleines bisschen Ahnung hat schaut sich die Scripte kurz an und weiss dann, wie die Endung lauten muss... da solltest du dir etwas besseres überlegen.
Aber zurück zum Thema:
nun ja, es gibt ja 2 gängige Methoden, so etwas zu machen: mit Benutzername & Seriennummer oder nur mit Seriennummer. Wenn du es mit nur mit Seriennummer machst, hast du es relativ einfach (denke ich, hab mich noch nie damit befasst). Du kannst ja ein beliegen Vergleichsalgorithmus schreiben, wo du die eingegebene Seriennummer auf Richtigkeit überprüfst. Was Richtig ist, bestimmst du, z.B. Quersumme der ersten 4 stellen muss 20 sein, Wert der 3ten * der 5ten Stelle muss gerade sein, die 1+2+6 Stelle muss gleich der 4+7+8 sein, das quadrat der 3 geteilt durch die 6te muss gleich der 5ten sein etc... auf was du überprüfst, bleibt die überlassen.
Du musst jedoch darauf achten, dass es noch mögliche gibt, nicht, dass du z.B. in einem teil überprüfst, ob die quersumme gerade ist, in einem anderen aber, ob sie ungerade ist.
Am besten ist ein Algorithmus, wo z.B. noch 10000 Seriennummern valide sind, da bei dieser Anzahl die Wahrscheinlichkeit eines Zufallstreffers noch relativ gering ist 10000/10000000 = 1/1000.
Zum Schluss noch eine Frage:
Was für ein Script ist das denn, das du damit vor Raubkopieren sichern willst? Muss ja was kommerzielles sein
MFG
Philipp
Hi,
eine Frage stellt sich mir zu dem Thema:
wer soll eigentlich bei einem Serverseitigen PhP-Script Raubkopieren? Da kommt ja nur jemand in Frage, der Zugriff auf den FTP-Server hat. Dieser wird dann wohl auch die Seriennummer haben, und diese kann man ja einfach mitweitergeben... Ausserdem waere deine Methode mit dem Namensumbenennen ziemlich sinnlos, weil, sobald einmal installiert, haben ja alle Dateien den richtigen Namen und man kann sie alle einfach kopieren. Und auch so, jemand, der ein kleines bisschen Ahnung hat schaut sich die Scripte kurz an und weiss dann, wie die Endung lauten muss... da solltest du dir etwas besseres überlegen.
Hm, eigentlich gibts ja nichts besseres oder? Es gibt sicher ausgereiftere Methoden, aber wenn einer sich das Produkt kauft und die Seriennummer bekommt, kann er die PHP-Files downloaden und sie mit Seriennummer verteilen - gibts keine Möglichkeit, die das verhindert? Jetzt wo du es sagst, kommts mir auch so vor, dass meine Methode irgendwie sinnlos ist...
Zum Schluss noch eine Frage:
Was für ein Script ist das denn, das du damit vor Raubkopieren sichern willst? Muss ja was kommerzielles sein
Ich habe zusammen mit einem Webentwickler ein Online WebEditor-Script erstellt, womit man HTML-Dateien per WYSIWYG ohne Zusatzsoftware direkt auf dem Server ändern kann. Relativ komfortabel das ganze, mit Backup-Funktion, usw. Ich denke, es gibt noch nicht soviele von diesen Editoren und gute schonmal gar nicht... daher wollen wir mal versuchen, ob sich das verkaufen lässt und da überlegen wir uns jetzt halt eine Art Kopierschutz.
Grüsse
Mike
Ich würde jeder Version eine andere Seriennummer geben.
Und in das Skript eine Funktion einbauen, die prüft ob der Monatserste(oder ähnnliches wiederholendes Datum) ist. Wenn dies der Fall ist soll das Skript ein Skript auf deinem Webserver aufrufen und IP des lokalen Servers und Seriennummer mitliefern. Wenn dann an dem Tag 2 verschiedene IPs auftauchen sollte man der Sache nachgehen. Damit die Funktion nicht aus dem Skript ausgebaut werden kann, sollte man das Skript verschlüsseln.
Marco
P.S.: Ist nur so eine Idee
Hi Marco,
kurze Frage:
Wie kann man denn ein Script verschlüsseln?
MFG
Philipp
Genau kenne ich mich damit auch nicht aus, aber es gibt z.B.:
http://www.php-encoder.com/
Marco
www.pkrypt.de habe ich schon die kostenlose Version ausprobiert, ist ganz gut.
Marco
Moin!
www.pkrypt.de habe ich schon die kostenlose Version ausprobiert, ist ganz gut.
Woher willst du das wissen? Hast du versucht, den Schutz zu knacken?
Außerdem erfordert dieses System zwingend, dass PHP als CGI ausgeführt wird - das ist bei weitem nicht immer der Fall. Also hat man dadurch möglicherweise auf Sand gebaut, wenn der Kunde PHP als Apache-Modul betreibt. Darüber hinaus muß man wohl anscheinend noch Software auf dem Server installieren, der die verschlüsselten Skripte ausführen soll. Sowas ist ebenfalls bei weitem nicht selbstverständlich.
Die Tatsache, dass eine vorkompilierte PHP-Bibliothek (offensichtlich zusätzlich mit dem Dekodierungs-System) benutzt wird, ist ein weiterer Nachteil, weil man dadurch natürlich keine individuell angepaßte PHP-Version mehr kompilieren kann. Unter Umständen ist das aber notwendig, wenn bestimmte Funktionen, die nicht zum Standardumfang von PHP gehören, benutzt werden müssen.
Es gibt also etliche Nachteile - ich würde das nicht unter "ist ganz gut" subsummieren. :)
- Sven Rautenberg
Holladiewaldfee,
Für Anregungen/Hinweise oder Links (die mir beim Algorithmus helfen könnten) wäre ich Dankbar.
such mal mit Google nach "elliptic curves" (mit Anführungszeichen!). Damit lassen sich wunderbar Seriennummern basteln, hinter denen kein erkennbares System ist. Erfordert allerdings stellenweise einige fundierte Mathematik-Kenntnisse ;-)
Ciao,
Harry