Pour "protéger" votre code...
...vous pouvez utiliser la procédure simple suivante.
Cependant, gardez à l'esprit qu'elle ne garantit aucune sécurité. Cela ne signifie pas qu'il n'y a pas de cas d'utilisation. Chiffrer en une chaîne base64 a tout son sens pour la partageabilité ou lorsque vous voulez créer, par exemple un marque-page (code exécuté depuis la barre d'adresse javascript:eval(atob('...'))
.
Maintenant, disons que c'est votre code :
1. Le Code
// commentaire, Wouhou!
var myObj = {
foo : function() { alert("Baz!")} ,
html : "", // c'est ["'] preuve
bar : 123
};
myObj.foo();
2. La chaîne base64
1. var base64Fun = btoa((function(){
2. // commentaire, Wouhou!
3. var myObj = {
4. foo : function() { alert("Baz!")} ,
5. html : "", // c'est ["'] preuve
6. bar : 123
7. };
8. myObj.foo();
9. }).toString().slice(13,-2))
Remarquez que j'ai seulement ajouté les lignes 1
et 9
, le reste est votre code, intact.
3. Exécutez-le
eval(atob(base64Fun));
eval(atob("Ly8gY29tbWVudGFyeQp2YXIgbXlPYmogPSB7Cglmb28gOiBmdW5jdGlvbigpIHsgYWxlcnQoIkJheiEiKX0gLAoJaHRtbCA6ICI8ZGl2IGlkPSdteURJVic+PC9kaXY+IiwKCWJhciA6IDEyMyAKfTsKbXlPYmouZm9vKCk7"));
Compatibilité
btoa()
et atob()
ne sont pas supportés par tous les navigateurs, mais..
- utilisez un polyfill et apprenez à ces fonctions au navigateur. lien
- trouvez une autre solution