bonjour Yannick,
je te colle l'explication de ^
OU bit-à-bit exclusif
Retourne 1 si l'un des deux bits de même poids est à 1 (mais pas les deux)
9 ^ 12 (1001 ^ 1100)
5 (0101)
merci pour tes explications, mais à cause de ces fonctions particulières je
n'arrive pas encore à réécrire la fonction dans un autre langage par exemple
vbs ou python, je préfère le vbs et ou un langage où le programme ou le script
peut être lancé sans installation .
mon projet est:
un champs d'édition et un bouton
je colle une adresse url dans le champs, le programme dois analyser le code
source de la page, pour extraire les 2 variable de cette fonction, puis il va
afficher un message box avec le numéro de téléphone après décryptage.
l'appel de la fonction est le suivant:
decryptTel('0x530x710x620x710x5b0x5f0x470x4d0x420x47','cGUImlrtttsvghvzpuzDp8+g==');
c'est la ligne que le programme va chercher dans le code source.
qui va donner 0678635963 après décryptage
De : yannick
Date : Samstag, 23. März 2013 20:34
À : [email protected]
Objet : [progliste] Re: fonction en java script
aller, je me lance ...
function decryptTel(cryptTel,key)
{
// création de la variable tel dont la valeur est "tel" :
var tel = "tel:";
// création de la variable elem (chaine de caractère ) dont la valeur est
un tableau de la variable cryptTel
// cryptTel est découpé par la fonction split en ayant pour chaine de
caractère délimiteur 0x.
// exemple : "bonjour".split ("j") donne le tableau : ["bon","our"]
var elem = cryptTel.split("0x");
// création d'une itération sur 2 variables i et j
// i et j sont initialisé à 0
// ii<elem.length signifie que la boucle s' effectuera tant que la
variable i soit toujours inférieur à la longueur
//de la variable elem, elem étant un tableau, donc, la boucle s'arrêtra
lorsque la dimension du tableau sera atteint .
// i++ , j++ permet d'incrémenter les variables i et j de 1.
for(var i=1,j=0;i<elem.length;i++,j++){
// création d'une variable dec_string
// dont la valeur est l'élément du tableau elem d'index i
// cette valeur est converti en nombre grace à la fonction parseInt en
base 16
var dec_string=parseInt(elem[i],16);
// condition si la valeur j est supérieur à la longueur de la
variable key
// ici je ne sais pas si key est une chaine de caractère ou un tableau .
if(j>key.length){
// on initialise la valeur de j à 0
j=0;
}
// incrémentation de la variable tel avec les 2 valeurs suivantes :
//String.fromCharCode permet de retrouver la valeur littérale de l'expression
// dec_string^key.charCodeAt(j
// pour mieux me faire comprendre, String.fromCharCode (97) retourne la lettre
a .
// je ne sais plus ce que signifie l'accent circonflexe .
// key.charCodeAt(j) permet de retrouver la valeur unicode d'un caractère
(contraire de la précédente fonction
// le paramètre (j) indique la position du caractère dans la chaine de
caractère .
// exemple :
// "bonjour".charCodeAt(0) donne 98 (la valeur de la lettre b parce que
l'index 0 de bonjour est b .
// exemple 2 :
// "bonjour".charCodeAt(3) donne 106 (la valeur de la lettre j parce que
l'index 3 de bonjour est j .
tel += String.fromCharCode(dec_string^key.charCodeAt(j));
}
// on modifie l'attribut href, mais je ne comprends pas pourquoi . et je ne
savais même pas si c'était possible .
window.location.href=tel;
return tel;
}
----- Original Message -----
From: Maan ALOUN
To: [email protected]
Sent: Saturday, March 23, 2013 3:47 PM
Subject: [progliste] fonction en java script
bonjour,
j'ai trouvé cette fonction qui décode un numéro de téléphone, mais je ne
connais pas le java script, je cherche à la réécrire dans un autre langage, qui
peut m'aider?
function decryptTel(cryptTel,key) {
var tel = "tel:";
var elem = cryptTel.split("0x");
for(var i=1,j=0;i<elem.length;i++,j++){
var dec_string=parseInt(elem[i],16);
if(j>key.length){
j=0;
}
tel += String.fromCharCode(dec_string^key.charCodeAt(j));
}
window.location.href=tel;
return tel;
}
merci par avance.