Comentario: Un juego de inteligencia de video HTML5, el proceso de desarrollo es muy interesante, me gusta la programación, pero después de implementar la lógica del juego, tengo una idea interesante: ¿por qué no piensas en una forma de ocultar el código?
Recientemente desarrollé mi primer juego web: un videojuego HTML5. El proceso de desarrollo es muy interesante, me gusta la programación, pero después de implementar la lógica del juego, tengo una idea interesante: ¿por qué no piensas en una forma de ocultar el código? Al principio estaba pensando en algunas prácticas muy simples, como prohibir el menú contextual, en caso de que pueda ver el código fuente de la página cuando haga clic con el botón derecho. Pero esto no tiene sentido. El menú de clic derecho no se puede usar. Las personas aún pueden ver el código fuente a través de atajos de teclado o ver archivos de origen en la barra de menú.Una imagen puede contener miles de palabras
Esto depende del volumen de la imagen. Pero decidí cifrar el código fuente y almacenarlo en una imagen. El componente de lienzo de HTML5 es muy adecuado para este tipo de cosas porque admite la operación para píxeles de imagen. Un píxel está representado por cuatro valores (canales): canales rojos, verdes, azules y alfa. Sus valores se distribuyen de 0 a 255. Mi código JavaScript es un carácter, cada personaje tiene un valor correspondiente a ASCII. El rango de valores ASCII también es 0-255, por lo que lo que quiero hacer es atravesar cada píxel en el lienzo y establecer el valor ASCII de 3 caracteres de código para cada píxel como su valor RGB, puede obtener fácilmente estos caracteres a través de la función de carbono.
.charcodeat (0)
Lo que se genera es una imagen colorida y pequeña, que es mi código de programa y echemos un vistazo:
Al decodificar, solo necesito dibujar esta imagen en el lienzo, atravesar los puntos de píxeles y eliminar los personajes representados por los valores R, G y B:
String.FromCharCode (código)
Concatenelos en una cadena grande, y ese es su código: código ejecutable.
¿Puede proteger su código fuente de esta manera?
En realidad, no puede, un programador experimentado (o incluso inexperto) aún puede saber cómo decodificar imágenes y eliminar el código adentro, pero creo que este es el primer paso para evitar que aquellos que tienen malos propósitos comerciales roben su código, y aquellos programadores que pueden descubrir cómo decodificar (principalmente)
Los principales inconvenientes de este método
Esta tecnología solo se puede utilizar en navegadores modernos que admiten la tecnología de lienzo HTML5, y definitivamente no es posible en IE6 e IE8. Incluso algunos navegadores modernos tienen problemas de soporte con la codificación del canal alfa de la imagen, por lo que solo puede colocar 3 caracteres por píxel: una imagen de 100 × 100 de tamaño puede almacenar 30,000 caracteres de texto.
¿Tiene alguna otra forma simple de evitar que otros copien su código? Por supuesto, podemos cifrar personajes, pero ¿cómo podemos asegurarnos de que sus pasos de descifrado no se puedan descifrar fácilmente? ¡Dime lo que piensas!