Checksummen-Algorhytmus für Blitzbasic und php

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

Smily

Betreff: Checksummen-Algorhytmus für Blitzbasic und php

BeitragDo, März 08, 2007 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Ich arbeite derzeit mit Blitzplus an einem Spiel, welches eine Onlinehighscore Besitzt.
Als schnittstelle dafür dient ein php-Script was auf einem Server liegt. Dieses Script wird dann mit POST-Daten (Username, Punkte...) aufgerufen.

Das Problem ist jetzt folgendes:
Der User kann den Stream zwichen seinen PC und den Server auslesen und so selber Highscore-Einträge machen.

Das will ich natürlich irgendwie umgehen.
Ich dachte dabei an eine Checksumme, die mit den Punkten Übertragen wird, und dann mittels PHP-Script überprüft wird (Punkte werden nochmal verschlüsselt und Checksumme verglichen)

Allerdings sind meine Ansätze nicht wirklich das Wahre (abgesehen davon, dass sie auch nicht funktionieren ^^), und wollte wissen, ob es irgendwo schon einen Algorhytmus dafür gibt, welcher in Beiden Sprachen Existiert bzw sich leicht portieren lässt (Meine php kenntnisse lassen seeeehhr zu wünschen übrig. Hab ein Paar Schattenbaum.net-Grundkenntnisse aber mehr nicht)
Am Besten wäre es, wenn der Algrhytmus auch gleich einen Schlüssel von mir mit einbezieht.

Hätte da jemand was für mich? ^^ Ich wäre dankbar.

mfg, Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, März 08, 2007 15:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Keine Ahnung ob Checksmme das gleiche ist wie die Quersumme, aber Quersumme geht so...

HighScore=12345
Quersumme=1+2+3+4+5=15

Um das ganze nicht ganz so einfach zu machen, kann man es auch etwas kopmplizierter machen. zB:

Quersumme=Int(1*(1.7*pos)+2*(1.7*pos)+3*(1.7*pos)+4*(1.7*pos)+5*(1.7*pos))

pos ist dann zB die Zahlenposition (erste Zahl=1, zweite Zahl=2...).

Das ganze dann noch durch ein XOR-Filter, und es ist (wie ich finde) ausreichend Verschlüsselt.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Smily

BeitragDo, März 08, 2007 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Checksumme ist nich gleich Quersume Wink
Aber die Idee ist trotzdem nett.

Ich werds mal versuchen.
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Axe

BeitragDo, März 08, 2007 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine passende Anweisung in PHP für dein Problem gibt es nicht direkt.
Ich würde eine Verschlüsselung mittels XOR vorschlagen. Das lässt sich auf beiden Systemen leicht umsetzen.
Um den Schlüssel schwieriger zu machen könnt man vlt die aktuelle Uhrzeit einbauen. Diese müsste der Client vorher vom Server abfragen.

MfG Axe
Projekte:
Ping Pong 2D Version 2.1
Weitere Infos: axesite.de

Suco-X

Betreff: ......

BeitragDo, März 08, 2007 16:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich habe das Problem die Tage schon gehabt. Ich habe einfach Username und Score mit einem Seperator zusammengefügt, daraus den md5 Code erstellt und den md5 Code mit Username+Score wieder mit einem Seperator zusammengefügt.Über diesen String lasse ich dann noch eine einfache Verschlüsselung drüberlaufen (Rc4) und danach wird er gesendet. Mit PHP wird das ganze wieder auseinandergenommen und gespeichert.
Md5 habe ich halt genommen, damit keiner Testweise die Nachricht manipulieren kann und in der Scoreliste das Ergebnis sieht. In PHP wird die Nachricht halt wieder entschlüsselt und der Md5 Code vom Rest getrennt. Von dem Rest wird wieder ein Md5 Code ausgegeben und mit dem mitgesendeten verglichen. Stimmen die nicht überein, wird der Benutzer via IP gesperrt.
Denke nicht, das das 100% Schutz bietet, aber ausreichend sollte es sein.
Md5 Funktion gibt es sicher auch für BB und PHP hat die sowieso.
Mfg
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Smily

BeitragDo, März 08, 2007 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Was ist denn ein Seperator?
Den Begriff hab ich noch nie gehört.
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Suco-X

Betreff: .......

BeitragDo, März 08, 2007 16:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist ein Trennzeichen.
Also z.b. "Username|Punkte". PHP hat die Funktion Explode dafür, für BlitzPlus müsste man sie sich wohl selbst anfertigen. Habe nur eine für BlitzMax.
Der Seperator müsste wohl mehrstellig ausfallen, um zufällige Übereinstimmungen mit Zeichen im Usernamen zu vermeiden.
Mfg
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

FOODy

BeitragDo, März 08, 2007 16:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Smily0412 hat Folgendes geschrieben:
Was ist denn ein Seperator?
Den Begriff hab ich noch nie gehört.

Nichts weiter als ein Trennzeichen deiner Wahl.

"Name|123|2ab29234934294" Da wäre z.b. "|" der Separator.

Gruß,
FOODy

EDIT:
Mist. Eine Minute zu spät ;P
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group