Question sur un code de password.

Résolu
Tharx Messages postés 2 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 22 octobre 2004 - 21 oct. 2004 à 23:48
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 25 oct. 2004 à 21:39
Bonjour, sachez tous dabord que ca n'a rien dilégale, j'ai trouver ce script et je voudrais savoir comment il marche, ca fait bien une heure que je cherche mais je bloque sur quelques points.
j'ai trouver le script à cette adresse:

http://www.dynamicdrive.com/dynamicindex9/password.htm

c'est www.dynamicdrive.com, ils ont pleins de scripts en javascript.
j'ai ce code de password, à partir d'un username et d'un password il renvoi sur une autre page web :

<script>
//Encrypted Password script- By Rob Heslop
//Script featured on Dynamic Drive
//Visit http://www.dynamicdrive.com

function submitentry(){
password = document.password1.password2.value.toLowerCase()
username = document.password1.username2.value.toLowerCase()
passcode = 1
usercode = 1
for(i = 0; i < password.length; i++) {
passcode *= password.charCodeAt(i);
}
for(x = 0; x < username.length; x++) {
usercode *= username.charCodeAt(x);
}
//CHANGE THE NUMBERS BELOW TO REFLECT YOUR USERNAME/PASSWORD
if(usercode==1746224351010&&passcode==15761762460)
//CHANGE THE NUMBERS ABOVE TO REFLECT YOUR USERNAME/PASSWORD
{
window.location=password+".html"}
else{
alert("password/username combination wrong")}
}
</script>

il vient de www.dynamicdrive.com .
J'ai essayer de le comprendre, mais j'ai quelques difficultés, étant donné que je n'ai aucune connaisance en javascript, mais j'en ai beaucoup en actionscript, le langage de programation pour macromedia flash et ca se ressemble asser, j'ai compris que l'idée du code est de transformer le mot de pass que entre l'utilisateur avec un algorythme qui est :

for(x = 0; x < username.length; x++) {
usercode *= username.charCodeAt(x);
}

et ensuite de comparer si c'etai bien égale au code déja transformer( à savoir 134603040 ou 15761762460 un pour le username et lautre pour le password).

Ce que je comprend:

-for() sert à créer une boucle pour que ,tant que la condition x < au nombre de lettres qu'il y a dans le username n'est pas remplie.

- charCodeAt(x) est sensé donner la traduction en langage uicode( jen ai baver avant de piger ca)

Ce que je ne comprend pas:

- qu'exprime: * = ?

-Est ce que charCodeAt(x) donne la valeur unicode de la lettre x ou de la valeur de la variable x?( c'est bien une variable x dans ce cas la non?)

-qu'exprime le point entre username et charCodeAt(x)? : username.charCodeAt(x);

normalement si je comprend ca il devrait etre possible de retrouver le mot de passe et l'username à partir de la suite de chiffres non?

ce script vient de dynamicdrive, la page :

http://www.dynamicdrive.com/dynamicindex9/password.htm

sur la page ont a un convertisseur du mot de pase et username, ont entre les password et username souhaité et ont recois la suite de chiffre qu'il faut mettre dans son script, je ne sais pas si ca peut etre interressant.

4 réponses

rttb Messages postés 290 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 25 avril 2008
22 oct. 2004 à 07:44
*=
Multiplie deux nombres et affecte le résultat au premier nombre.Exemple : x *y équivaut à x x * y
3
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
22 oct. 2004 à 08:55
charCodeAt(x) c'est le valeur unicode du caractère à l'indice x dans la chaine de référence (ici, c'est la chaine username)
Le point signifie :
- que username et charcodeat sont liés.
- que charCodeAt() est une méthode qui s'applique sur la chaine de caractères 'username'

Quand on travaille avec des objets (ici un objet de type String), on peut faire plein d'actions sur cet objet (méthodes). Ces actions se codent ainsi :

objet.methode(paramètres)

Manu
3
Tharx Messages postés 2 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 22 octobre 2004
22 oct. 2004 à 14:43
Daccord, donc en supposant qu'il y ai 5 charactères dans le mot de pass :

for(i = 0; i < password.length; i++) {
passcode *= password.charCodeAt(i);

revien à

passcode *= password.charCodeAt(5)

J'ai bien compris?

Par contre je n'ai pas compris l'utilitée du point:

-que username et charcodeat sont liés. => daccord

- que charCodeAt() est une méthode qui s'applique sur la chaine de caractères 'username' => la je pige pas, par chaine de caractères tu veux dire le nombre de caractères qu'il y a dans le username? Et qu'est ce que ca donne une méthode qui s'applique sur une chaine de caractère?
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
25 oct. 2004 à 21:39
Supposons que chaine1, chaine2 et chaine3 soient des chaines de caractères (String en anglais).

chaine1 = "toto"
chaine2 = "tata"
chaine3 = "tutu"

chaine1.charCodeAt(2) renvoit "o"
chaine2.charCodeAt(2) renvoit "a"
chaine3.charCodeAt(2) renvoit "u"

Le point signifie que la procédure charCodeAt() s'applique sur l'objet qui se trouve avant (ici une chaine de caractères).

Au passage, une chaine de caractères, c'est un ensemble de caractères. (ou plutôt un mot ou une phrase).

Manu
0
Rejoignez-nous