En primer lugar, parece que estás intentando hacer trampa en un juego. No hagas eso.
Ahora algunos antecedentes sobre lo que está pasando. Veamos primero la diferencia entre cifrado y hash:
-
El cifrado es el proceso de codificación de la información de tal manera que se puede decodificar nuevamente, dada la información correcta sobre el proceso de codificación (como una clave de cifrado). Esto se usa para comunicaciones seguras de manera que el destinatario entienda un mensaje (y pueda recuperar el original) pero los terceros no puedan leer el mensaje. El proceso es algo como esto:
"Mensaje" »{fórmula secreta}» (scramble) »{reverso de la fórmula secreta}» "Mensaje"
En otras palabras, lo que entra puede ser descubierto si conoces el secreto. Obviamente en este escenario cuál es el secreto es bastante importante. En las computadoras, la criptografía no suele ser la fórmula que es secreta, sino que los valores utilizados en la fórmula son las claves secretas. Más sobre esto en un segundo.
-
Hashing es el proceso o reducir un blob de información a un solo valor (generalmente de una longitud fija mucho más corta que el original) que es único para la entrada dada. Esto se puede usar para confirmar la integridad de un mensaje, pero en realidad no contiene el mensaje. Esto se ve algo como esto:
[Value1] » 7a258c461b48c794c0b5110b35382d1e
[Value2] » 926e0eddb765d66502eac40a4ead9409
El hash se usa a menudo para almacenar contraseñas. Tenga en cuenta que esta es una operación unidireccional. Dada la misma entrada, siempre obtendrá el mismo hash 1 :
[Value1] » 7a258c461b48c794c0b5110b35382d1e
[Value1] » 7a258c461b48c794c0b5110b35382d1e
Pero uno no puede saber simplemente por el hash cuál fue la entrada 2 .
Dejando de lado los antecedentes, MD5 es un algoritmo hash. No es probable que su juego envíe datos de hash al servidor porque los datos no se pueden interpretar. ¡No les diría cuál fue tu puntaje! Puedes descartar cualquier cosa que sea un algoritmo de hash.
Ahora hay dos formas básicas en que puede funcionar un proceso de cifrado, como en el primer punto anterior.
-
El mismo valor secreto se puede usar tanto para cifrar como para descifrar el contenido.
Este es el patrón habitual para cosas como documentos protegidos con contraseña.
- El usuario A usa {contraseña} para cifrar un documento.
- El documento cifrado se pasa.
- Solo los usuarios que saben {contraseña} pueden descifrar y leer el contenido.
-
Se puede generar un par de valores coincidentes de tal manera que la mitad del par se use para cifrar el contenido que solo la otra mitad del par puede descifrar.
- El usuario A genera un par de claves.
- Luego pasan la mitad pública del par de claves, pero mantienen la mitad privada para ellos.
- Cualquier usuario puede cifrar documentos o valores utilizando la clave pública del Usuario A, pero los datos resultantes solo pueden ser descifrados por el Usuario A utilizando su clave privada.
Si el juego utiliza un modelo de contraseña básico como en el # 1, la contraseña y el algoritmo utilizado estarán codificados en algún lugar del código fuente y se escribirán en alguna parte de la aplicación real. Cualquiera que haga algún trabajo de disección podrá averiguar cuál es ese valor y descifrar cualquier otro mensaje que intercepten. ¡Ojalá tu aplicación NO haya hecho esto!
La forma correcta sería para la criptografía de clave pública como en el # 2 anterior. El desarrollador de software habría generado un par de claves para su software. La mitad pública se integraría en el software en algún lugar y todos los valores se pueden codificar con esa clave antes de enviarlos por cable. Una vez que llegan a los servidores del desarrollador, los datos pueden decodificarse utilizando la mitad privada de la clave.
Conclusión
Si el desarrollador ha utilizado la tecnología adecuada para el trabajo, no podrá descifrar los datos que se envían porque no tiene la clave privada necesaria para decodificarlos. La clave pública puede estar oculta en el software en algún lugar, pero eso no le proporcionará los datos.
Si NO han hecho su trabajo correctamente, es posible que haya pistas de rastreo en el propio software que le brinden suficiente información para descifrar los datos usted mismo.
La identificación real del método y el algoritmo específico utilizado en este caso está más allá del alcance de esta respuesta y se deja para que el lector haga una investigación adicional. Esperamos que este resumen de las posibilidades proporcione una mejor comprensión de qué tipo de cosas está buscando.
2 ¡Esta es la razón por la que el uso de hashes salados es fundamental para la seguridad de los sistemas de contraseñas!
2 Nota: dije solo desde el hash porque es posible adivinar o usar tablas predefinidas para saber qué entrada generó un hash, pero El hash seguro en sí mismo no contendrá los datos utilizados para generarlo.