bonjour,
Effectivement, si le décryptage d’un script minifié n’est pas impossible, ça demande un petit niveau quand même !
Et si la personne a un certain niveau en JavaScript, ça lui prendra certainement plus de temps à décrypter et interpréter un script qu’à en re-écrire un.
En minifiant, les noms des variables que l’on a soigneusement nommés pour mieux les interpréter sont renommés avec des lettres et les égalités, conditions etc sont réécrites avec un script minimum.
Voici par exemple une fonction telle que je l’ai écrite :
Code:
function simplify(str) {
var result=””;
var data=str.split(“/”);
var numOne=Number(data[0]);
var numTwo=Number(data[1]);
for (var i=Math.max(numOne,numTwo); i>1; i–) {
if (numOne%i==0 && numTwo%i==0) {
numOne/=i;
numTwo/=i;
}
}
if (numTwo===1) result=numOne.toString();
else result=numOne.toString()+”/”+numTwo.toString();
return result;
}
MInifiée, elle donne :
Code:
function simplify(t){for(var r=t.split(“/”),i=Number(r[0]),n=Number(r[1]),o=Math.max(i,n);o>1;o–)i%o==0&&n%o==0&&(i/=o,n/=o);return 1===n?i.toString():i.toString()+”/”+n.toString()}
Ensuite, re-écrite plus proprement avec Online javaScript beautifier (https://beautifier.io/) :
Code:
function simplify(t) {
for (var r = t.split(“/”), i = Number(r[0]), n = Number(r[1]), o = Math.max(i, n); o > 1; o–) i % o == 0 && n % o == 0 && (i /= o, n /= o);
return 1 === n ? i.toString() : i.toString() + “/” + n.toString()
}
Tu vois, ce n’est quand même pas pareil !
Si tu minifies un script, n’oublie donc pas de garder une version originale, car même toi, tu auras un peu de mal à relire ce script…
@+
:bonjour: