Commentaire: Un jeu d'intelligence vidéo HTML5, le processus de développement est très intéressant, j'aime la programmation, mais après avoir implémenté la logique du jeu, j'ai une idée intéressante: pourquoi ne pensez-vous pas à un moyen de cacher le code
J'ai récemment développé mon premier jeu Web: un jeu vidéo HTML5. Le processus de développement est très intéressant, j'aime la programmation, mais après avoir implémenté la logique du jeu, j'ai une idée intéressante: pourquoi ne pensez-vous pas à un moyen de cacher le code? Au début, je pensais à des pratiques très simples, telles que l'interdiction du menu contextuel, au cas où vous pourriez afficher le code source de la page lorsque vous cliquez avec le bouton droit. Mais cela n'a aucun sens. Le menu de clic droit ne peut pas être utilisé. Les gens peuvent toujours afficher le code source via des raccourcis clavier ou afficher les fichiers source dans la barre de menu.Une image peut contenir des milliers de mots
Cela dépend du volume de l'image. Mais j'ai décidé de crypter le code source et de le stocker sur une image. Le composant Canvas de HTML5 est très adapté à ce type de chose car il prend en charge le fonctionnement des pixels d'image. Un pixel est représenté par quatre valeurs (canaux): canaux rouges, verts, bleus et alpha. Leurs valeurs sont distribuées de 0 à 255. Mon code JavaScript est un caractère, chaque caractère a une valeur correspondante ASCII. La plage des valeurs ASCII est également 0-255, donc ce que je veux faire, c'est traverser chaque pixel sur la toile et définir la valeur ASCII de 3 caractères de code pour chaque pixel comme valeur RVB, vous pouvez facilement obtenir ces caractères via la fonction Charcodeat.
.Charcodeat (0)
Ce qui est généré est une image colorée et petite, qui est mon code de programme et jetons un coup d'œil:
Lors du décodage, j'ai juste besoin de dessiner cette image sur la toile, de traverser les points de pixel et de retirer les caractères représentés par les valeurs R, G et B:
String.fromCharcode (code)
Les concaténer en une grande chaîne, et c'est votre code - code exécutable.
Pouvez-vous protéger votre code source de cette façon?
En fait, il ne peut pas - un programmeur expérimenté (ou même inexpérimenté) peut encore savoir comment décoder des images et supprimer le code à l'intérieur, mais je pense que c'est la première étape pour empêcher ceux qui ont de mauvaises fins commerciales de voler votre code - et les programmeurs qui peuvent déterminer comment décoder (principalement) ne sont pas plagiateurs ne sont pas plagiateurs
Les principaux inconvénients de cette méthode
Cette technologie ne peut être utilisée que dans des navigateurs modernes qui prennent en charge la technologie de toile HTML5, et il n'est certainement pas possible dans IE6 et IE8. Même certains navigateurs modernes ont des problèmes de support avec le codage du canal alpha de l'image, vous ne pouvez donc placer que 3 caractères par pixel - une image de 100 × 100 taille peut stocker 30 000 caractères de texte.
Avez-vous d'autres moyens simples d'empêcher les autres de copier votre code? Bien sûr, nous pouvons crypter les personnages, mais comment pouvons-nous nous assurer que vos étapes de décryptage ne peuvent pas être facilement craquées? Dites-moi ce que vous pensez!