IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Xor - PHP <=> Javascript


Sujet :

JavaScript

  1. #1
    on
    on est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Xor - PHP <=> Javascript
    Bonjour à tous,

    Je poste ce message sur les forum PHP&Javascript car tous 2 concernés:

    1. J'ai trouvé sur le net la fonction de cryptage PHP suivante (codée par Michel Defawes):

    http://www.info-3000.com/phpmysql/cr...decryptage.php

    Je trouve la fonction simple et efficace.

    2. J'ai tenté de transcrire cette fonction en Javascript (le but étant d'échanger des infos cryptées depuis le client (JS) et décryptée par le serveur PHP).

    3. Pour le moment, je n'arrive pas à trouver d'équivalent en JS à l'expression PHP suivante:

    $VariableTemp.= substr($Texte,$Ctr,1) ^ substr($CleDEncryptage,$Compteur,1);

    PHP semble convertir automatiquement un caractère quelconque en binaire avant d'appliquer XOR.

    Si je transcris cette ligne en JS, je fais:

    var VariableTemp+= String.fomCharCode(charCodeAt(Texte,Ctr,1) ^ charCodeAt(CleDEncryptage,Compteur,1));

    Mais je n'obtiens pasdu tout le même résultat.

    Auriez-vous une idée? Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 143
    Points
    11 143
    Par défaut
    bonjour,

    j'aurai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    VariableTemp += String.fromCharCode( Texte.charCodeAt(Ctr) ^ cleDEncryptage.charCodeAt(Compteur) );
    chaine.charCodeAt(valeur) : pour obtenir le code unicode du caractère placé au rang valeur de la chaine de caractères chaine

    String.fromCharCode(valeur) : pour obtenir le caractère de code valeur

  3. #3
    on
    on est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Merci pour ta réponse. Tu as raison, j'ai été trop vite dans mon message et j'aurais dû copier/coller directement depuis mon script dans lequel les fonctions sont correctement implémentée.

    Donc, en réalité, mon réel problème est le résultat donné par XOR.

    ex. théoriquement, 1100^1010 devrait donner 0110
    sous JS 1100^1010 donne 1982 ???

    Aurais-tu une idée ?

    Merci d'avance.

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 143
    Points
    11 143
    Par défaut
    ex. théoriquement, 1100^1010 devrait donner 0110
    sous JS 1100^1010 donne 1982 ???
    Attention tu n'es pas en base 2 (binaire) mais en base 10 (décimal) !!

    1100^1010 donne 1982 en base 10 (décimal)
    1100^1010 donne 0110 en base 2 (binaire)

    1100 (10) = 0100 0100 1100 (2)
    1010 (10) = 0011 1111 0010 (2)
    1982 (10) = 0111 1011 1110 (2) (ou exclusif)

    12 (10) = 1100 (2)
    10 (10) = 1010 (2)
    6 (10) = 0110 (2) (ou exclusif)

  5. #5
    on
    on est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Evidemment. Merci beaucoup pour l'info.

    Entre-temps je rencontre un autre problème. Une partie de l'algo consiste à construire une chaine en appliquant un XOR sur un caratère de la chaine à crypter et un caractère de la chaine clé.

    ChaineCryptée = ChaineCryptée + String.fromCharCode(xor(Texte.charCodeAt(i),Cle.charCodeAt(y)));

    nb: xor() étant une fonction non standard.

    Cette partie fonctionne assez bien sauf lorsque xor() renvoie une valeur nulle. fromCharCode(0) stoppe purement et simplement la concaténation de la var ChainCryptée. L'équivalent fonctionne pourtant sous PHP.

    Auriez-vous une idée ?
    Merci d'avance.

  6. #6
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 143
    Points
    11 143
    Par défaut
    comme je l'ai écrit plus haut :
    Citation Envoyé par Auteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    VariableTemp += String.fromCharCode( Texte.charCodeAt(Ctr) ^ cleDEncryptage.charCodeAt(Compteur) );
    ^ : symbole du ou exclusif.
    et
    valeur1 += valeur 2 équivaut à valeur1 = valeur1 + valeur2;

  7. #7
    on
    on est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Auriez-vous une idée de comment contourner String.fromCharCode(0) que JS ne semble pas pouvoir interpréter (car NULL)?

    Merci d'avance

  8. #8
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 143
    Points
    11 143
    Par défaut
    Citation Envoyé par on
    Auriez-vous une idée de comment contourner String.fromCharCode(0) que JS ne semble pas pouvoir interpréter (car NULL)?

    Merci d'avance
    franchement non. Peut-être ajouter un décalage de 1 à tous les arguments de fromCharCode mais cela ne fait que déplacer le problème : si la valeur est égale à 255 et si on ajoute 1, le résultat sera null également (on retourne à 0).

Discussions similaires

  1. Appel fonction php dans code javascript
    Par licorne dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/03/2008, 10h55
  2. [PHP-JS] Xor - PHP <=> Javascript
    Par on dans le forum Langage
    Réponses: 1
    Dernier message: 27/09/2006, 13h28
  3. [PHP-JS] variable php dans du javascript ?????
    Par lipczynski dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 18/08/2005, 14h26
  4. [PHP-JS] Execution d'un script php dans du javascript
    Par Anduriel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/06/2005, 20h41
  5. [PHP-JS] var javaScript avec test php
    Par lepierre dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/12/2004, 12h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo