2012-04-04 15 views
0

Entschuldigung wegen der letzten Frage. (Ich hasse Google traductor).Encode-Methode für Spiele-Pakete?

Ich arbeite in einem MMO (Masive Multiplayer Online) Spiel, aber ich sehe oft einige Server-Emulator zum Beispiel für Lineage 2 oder Aion von NCSoft.

Mein Spiel ist C++ basiert und der Server-Emulator ist in Java.

Dann denke ich URL Encode-Methode, weil in beiden Programmiersprachen kodieren und dekodieren kann, aber einfach zu dekodieren ist.

Eine andere Idee ist, Pakete wie uint Werte 0x00000 + Aktionsparameter (URLEncoded) zu erstellen, aber ich denke, ist keine gute Idee, weil einfach zu dekodieren ist.

Eine andere, ist eine einfache Verschlüsselungsmethode erstellen Remlace-Zeichen für andere Zeichen. Ein Beispiel:

To encode: Hello 
Encoded: 72S/101NK&108-ASK+108P$I111?TRY 

Ziemlich einfach Split für keine numerischen Zeichen zu entschlüsseln und löschen. Ist eine ASCII-Codierung für jedes Zeichen einfach, aber erhöhen Sie die Paketgröße sehr.

Jemand weiß eine Encode-Methode als in C++ und Java decodiert werden kann?

Vielen Dank für das Lesen. Schönen Tag, Marcos.

Antwort

1

Ich nehme an, Sie benötigen eine Möglichkeit zum Verschlüsseln und Entschlüsseln von Daten (ich glaube, das sind die Begriffe, nach denen Sie suchen, anstatt zu encodieren/zu entschlüsseln). Oder ist es Codeverschleierung, nach der Sie suchen?

Wenn es um Verschlüsselung/Entschlüsselung geht, gibt es viele Algorithmen, die Implementierungen in zahlreichen Programmiersprachen haben. Benutze für die Liebe zum Guten keine URL-Codierung oder eine einfache Ersatz-Chiffre, da diese einfach zu knacken sind.

In Bezug auf Verschlüsselung und Sicherheit verlassen sich die Benutzer Ihres Spiels darauf, dass der Entwickler robuste Industriestandard-Auswahlen trifft, die ihre persönlichen Informationen und die Zeit, die sie in ihren Charakterbau investieren, schützen. Daher schlage ich vor, dass Sie entweder die Konzepte der Verschlüsselung und Authentifizierung gründlich durchlesen und dann eine solide Wahl treffen oder sich von einem Experten auf diesem Gebiet behandeln lassen.

Rollen Sie nicht Ihre eigenen hier, da dies normalerweise der beste Weg ist, etwas leicht hackbar zu machen. Verschlüsselungsstandards wie AES, gesicherte Protokolle wie SSL und TLS und Authentifizierung basierend auf Zertifikaten sind alle gut etabliert, werden über Jahre hinweg getestet und ordnungsgemäß dokumentiert. Es spielt wahrscheinlich wenig eine Rolle, wenn es einen Unterschied in der Sprache gibt, die für Client und Server verwendet wird, aber das ist tatsächlich bei jeder Netzwerkkommunikation der Fall, wenn es eine richtige Abstraktion gibt.

+0

Ich war an der gleichen Stelle, ich habe keine Ahnung, welche Kodierungsmethode verwenden ... – Marcos

+0

@ user1233315 Was möchten Sie erreichen? Schützen Sie Ihren Code vor Reverse Engineering? Verschlüsselte Daten über ein Netzwerk senden? Ich denke, was Sie wollen, ist ** Verschlüsselung **, nicht ** Codierung **. Bitte verwenden Sie die richtigen Bedingungen. Sie werden nicht erfolgreich sein, wenn Sie keine Ahnung haben, worüber Sie sprechen oder sogar suchen. Meine Antwort ist hier: Verwenden Sie etwas wie AES (Verschlüsselung), senden Sie Daten über SSL oder TLS (Netzwerk) oder verwenden Sie Zertifikate (Authentifizierung). –

+0

Senden Sie verschlüsselte Daten über ein Netzwerk, das ich will. Ich benutzte Google traductor, aber wie ich sehe, funktioniert nicht gut. – Marcos