[R] Traduire un javascript "checksum" en autoit

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
judgefred
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 15 juil. 2009 18:12
Status : Hors ligne

[R] Traduire un javascript "checksum" en autoit

#1

Message par judgefred »

Bonsoir à tous,

Je souhaiterai pourvoir transcrire un javascript en autoit mais je reste bloqué sur certaines variables. Voici le script en question:

[code]<SCRIPT LANGUAGE="JavaScript">
function Calculer() {
var tab=" azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789_$&#@";
var login=document.forms[0].elements["login"].value;
var password=document.forms[0].elements["password"].value;
var nblog=login.length;
var nbpass=password.length;
var sum=1;
var n=Math.max(nblog,nbpass)
for (var i=0;i<n;i++) {
var index1=tab.indexOf(login.substring(i,i+1))+10;
var index2=tab.indexOf(password.substring(i,i+1))+10;
sum=sum+(index1*n*(i+1))*(index2*(i+1)*(i+1));
}

document.forms[0].elements["checksum"].value=sum;

}
</SCRIPT>[/code]

Je bloque au niveau du .length, .indexOf et .substring
Y'a-t-il des équivalences dans les fonctions d'Autoit et, si ces équivalences existent, la transformation du script peut-elle finalement aboutir (sinon, je laisse tomber...)?

Merci d'avance

Cordialement

JudgeFred
Modifié en dernier par judgefred le mer. 22 juil. 2009 11:55, modifié 3 fois.
Puissante est la force d'autoit ... Que je ne maitrise pas...
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: TRADUIRE UN JAVASCRIPT "CHECKSUM" EN AUTOIT

#2

Message par orax »

Bonsoir, je dirais :
- StringInStr pour indexOf ;
- StringLen pour length ;
- StringMid pour substring.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
judgefred
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 15 juil. 2009 18:12
Status : Hors ligne

Re: TRADUIRE UN JAVASCRIPT "CHECKSUM" EN AUTOIT

#3

Message par judgefred »

Merci pour votre réponse.

Je teste cela de suite.
Puissante est la force d'autoit ... Que je ne maitrise pas...
Avatar du membre
judgefred
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 15 juil. 2009 18:12
Status : Hors ligne

Re: TRADUIRE UN JAVASCRIPT "CHECKSUM" EN AUTOIT

#4

Message par judgefred »

Rebonjour,

Merci de votre aide. Le remplacement s'est avéré correct!
Pas à pas, le script autoit et le javascript initial fournissent les mêmes données dans les variables!

Cependant, je bloque sur la dernière ligne qui ne doit pas normalement poser de difficultés..

ORIGINAL:
sum=sum+(index1*n*(i+1))*(index2*(i+1)*(i+1));

AUTOIT:
$sum = $sum + ($index1*$n*($i+1))*($index2*($i+1)*($i+1));

Bien que les données soient identiques dans les variables entre les deux scripts, il n'en est pas de même dans le "calcul final" ou l'un génére un nombre différent de l'autre..

Auriez vous des suggestions?

Merci d'avance

JudgeFred
Puissante est la force d'autoit ... Que je ne maitrise pas...
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: TRADUIRE UN JAVASCRIPT "CHECKSUM" EN AUTOIT

#5

Message par orax »

Je ne sais pas si votre problème vient de là, mais il y a des nuances entre Autoit et Javascript. Par exemple, Pour indexOf : le comptage commence à 0, alors que pour StringInStr ça commence à 1.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
judgefred
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 15 juil. 2009 18:12
Status : Hors ligne

Re: TRADUIRE UN JAVASCRIPT "CHECKSUM" EN AUTOIT

#6

Message par judgefred »

C'est totalement vrai.

Je viens de vérifier et cela ne vient effectivement pas de la dernière ligne $sum.

S'il n'y a pas de solution, je me permettrai quand même de vous soumettre sur ce post demain matin le script construit avec autoit pour me dire s'il ne contient pas d'erreurs.

Merci pour votre aide
Puissante est la force d'autoit ... Que je ne maitrise pas...
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Traduire un javascript "checksum" en autoit

#7

Message par ani »

bonjour,
Auriez-vous un exemple de valeur retournée ?
Je veux dire un login & password bidon avec la valeur $sum qui serait retournée?
Pour tester ;)
merci et bonne continuation ;)
Avatar du membre
judgefred
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 15 juil. 2009 18:12
Status : Hors ligne

Re: [..] Traduire un javascript "checksum" en autoit

#8

Message par judgefred »

Bonjour

Je vous transmets le code traduit en fonction des précedentes réponses sur ce forum:

Code : Tout sélectionner

#include <Math.au3>
    
    
    Dim $loginmid
    Dim $passwordmid
    Dim $index1
    Dim $index2
    
    $tab = "                  azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789_$&#@"
    
    $login = "AZERTY"
    $password = "AZERTY"
    
    $nblog = StringLen($login)
    $nbpass = StringLen($password)
    
    
    $sum = 1
    $n = _Max($nblog,$nbpass)
    
    for $i = 0 to $i < $n
    
        $loginmid = StringMid($login, $i, $i+1)
        $passwordmid = StringMid($password, $i, $i+1)
        $index1 = StringInStr($tab, $loginmid, 1) + 10      
        $index2 = StringInStr($tab, $passwordmid, 1) + 10
        $sum = $sum + ($index1*$n*($i+1))*($index2*($i+1)*($i+1))

        Next 
        
        MsgBox(0,"", "$nblog: " & $nblog & @CRLF & "$npass: " & $nbpass & @CRLF & "$n: " & $n & @CRLF & "$loginmid: " & $loginmid & @CRLF & "$passwordmid: " & $passwordmid & @CRLF & "$index1: " & $index1 & @CRLF & "$index2: " & $index2 & @CRLF & "$sum: " & $sum)
Tout se passe bien jusqu'à la fonction StringMid. Et même dans l'hypothèse ou les retour de ces fonctions seraient identiques, le $sum final est toujours différent entre le javasript et le script autoit.

Pour vous répondre, vous trouverez en fichier zip ci-joint le script autoit qui vous retourne les différentes valeurs calculées ainsi qu'une page html qui vous retourne également les différentes valeurs calculées par le javascript. Vous pourrez donc comparer les "réactions" de ces deux scripts.

Merci d'avance

Cordialement

Judgefred
Fichiers joints
Checksum.zip
javascript
(1.56 Kio) Téléchargé 77 fois
Puissante est la force d'autoit ... Que je ne maitrise pas...
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Traduire un javascript "checksum" en autoit

#9

Message par orax »

Il y avait une erreur au niveau des StringMid et la boucle For ne s'utilise pas comme ça (ça ne faisait qu'une seule boucle).

Code : Tout sélectionner

#include <Math.au3>


Dim $loginmid
Dim $passwordmid
Dim $index1
Dim $index2

$tab = "                  azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789_$&#@"

$login = "AZERTY"
$password = "AZERTY"

$nblog = StringLen($login)
$nbpass = StringLen($password)


$sum = 1
$n = _Max($nblog, $nbpass)

For $i = 0 To $n - 1
    $loginmid = StringMid($login, $i + 1, 1)
    $passwordmid = StringMid($password, $i + 1, 1)
    $index1 = StringInStr($tab, $loginmid, 1) + 10
    $index2 = StringInStr($tab, $passwordmid, 1) + 10
    $sum = $sum + ($index1 * $n * ($i + 1)) * ($index2 * ($i + 1) * ($i + 1))
Next

MsgBox(0, "", "$nblog: " & $nblog & @CRLF & "$npass: " & $nbpass & @CRLF & "$n: " & $n & @CRLF & "$loginmid: " & $loginmid & @CRLF & "$passwordmid: " & $passwordmid & @CRLF & "$index1: " & $index1 & @CRLF & "$index2: " & $index2 & @CRLF & "$sum: " & $sum)
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
judgefred
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mer. 15 juil. 2009 18:12
Status : Hors ligne

Re: [..] Traduire un javascript "checksum" en autoit

#10

Message par judgefred »

Cela fonctionne parfaitement!

Je vous remercie sincerement pour votre aide, ainsi que les autres intervenants.

JudgeFred
Puissante est la force d'autoit ... Que je ne maitrise pas...
Répondre