¿Qué opciones hay para guardar los datos del juego de manera segura? Estoy interesado en soluciones diseñadas específicamente para C ++.
Estoy buscando algo que sea rápido y fácil de usar. Solo me preocupa almacenar información simple como
Qué niveles están y no están desbloqueados
La puntuación del usuario para cada nivel
Tengo curiosidad nuevamente por saber qué hay para usar, cualquier buena biblioteca para usar que me brinde archivos de datos de juego seguros y agradables con los que el jugador promedio no pueda meterse.
Acabo de encontrar esto aquí, que se ve muy bien, pero sería genial obtener algunas opiniones sobre otras posibles bibliotecas / opciones.
Respuestas:
Primero, digamos que ya que tiene un archivo de guardado muy simple, puede usar un archivo de texto.
Una de las ideas más simples es usar una tecla de cadena para bloquear / desbloquear datos:
pero después de una pequeña búsqueda en google encontré estos enlaces, que pueden ser útiles:
Editar:
Basado en que char firmado es "Comportamiento indefinido" como @ v.oddou mencionó, supongo que usar XOR o convertir a char sin firmar dará como resultado un código más seguro / multiplataforma. algo como esto:
fuente
XOR
instead of increment/decrement, as you might end up with corrupt data if you exceed the bounds of the data-type you're dealing with (char
I assume)Nothing can be considered secure client side; anyone who tells you it is, is lying.
You can use any encryption and scramble method you want, but since the client must be also able to decode it, and the user has access to the client itself, if he is resourceful enough he'll have access to the decryption key / algorithm.
You can only add layers of annoyances to someone willing to crack it, but given enough time it will be cracked, and you can't do anything about that.
fuente
You can definitely leave your save file unencrypted but add a checksum that is calculated through all the values that you want to "guard".
The cracker would therefore be able to re-produce the hashing (which you off course will use with proper salt) and therefor will have a happy time trying to re-produce.
This would still not be %100 secure but, probably the best time effective solution.
fuente
This provided some simple XOR encryption:
And how to use it:
The output of this code is this:
fuente
Here are a few programs (free ones anyway) that could help you, they both basically combine all you resources into a single exe.
NBinder, now a commercial product, this is an old but functional version.
Enigma Virtual Box, another tool with similar features.
fuente