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

NodeJS Discussion :

Compréhension fonction Hash md5


Sujet :

NodeJS

  1. #1
    Membre chevronné
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2015
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Septembre 2015
    Messages : 215
    Par défaut Compréhension fonction Hash md5
    je ne suis pas dev JS (je connais d'autres langages, donc j'arrive à comprendre le JS dans les très grandes lignes)
    je cherche à comprendre comment fonctionne un code que j'ai sur un programme :


    j'ai un code qui appelle la méthode objectHash
    comme elle est "assez grosse", voici le lien où on peut la trouver
    https://github.com/puleos/object-has...aster/index.js


    en entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var object_in = {texte:"Mon texte.",ident:"action01"};
    var options = {algorithm:"md5"};
    var res = objectHash (object_in, options);

    j'obtiens res = db584c40868c7265aef607e3788acf16

    d'après ce que je comprends, le code fait un hash md5 de quelque chose (en utilisant object_in)
    mais là en entrée, on a une liste de propriétés et non un string

    => comment trouver quel est le texte qui est haché ?

    merci

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 527
    Par défaut
    Bonjour,

    Après examen, il semble que ce module tente de te renvoyer une somme pour « n'importe quel type d'objet », ce qui n'est a priori pas possible avec quelque chose qui n'est pas une chaîne de caractère ou un tableau d'octet. La routine concernée va donc sérialiser l'objet à sa sauce, en utilisant un format qui lui est propre.

    Chaque valeur est sérialisée sous la forme « <type>:<nombre d'entrées>:<valeur> », ou <nombre d'entrées>, quand elle est applicable, est soit la longueur d'une chaîne, soit le nombre d'éléments d'un tableau, soit le nombre d'entrées (de clés) d'un objet. Lorsque qu'il y a plus d'une entrée, les entrées successives sont séparées par une virgule « , ». Si la valeur d'une entrée est elle-même un objet composé, le même format s'applique.

    En l'occurrence, ton objet est d'abord transformé en quelque chose ressemblant à object:2:string:5:texte:string:10:Mon texte.,string:5:ident:string:8:action01, et c'est cette chaîne qui est ensuite passée à l'algorithme de ton choix.

    À noter que j'ai examiné le code et tenté de le faire tourner dans un environnement dépourvu de ses dépendances, donc cette chaîne n'est pas être pas exacte. Il semble de plus que dans certains cas, l'algo inclue les propriétés natives également.

    Par conséquent, si tu veux chiffrer une seule chaîne de ton objet, il faut passer directement cette chaîne à ta fonction et pas l'objet entier.

  3. #3
    Membre chevronné
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2015
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Septembre 2015
    Messages : 215
    Par défaut
    bonjour Obsidian

    merci de ta réponse

    avec tes explications, j'ai réussi à construire la chaine qui est hachée : le hash md5 est égal à celui retournée par cette fonction
    je pensais à une moulinette plus simple !

    l'exemple final que tu donnes est presque correct (il rajoute du 'blabla' avant), mais ça m'a permis de comprendre comment c'était construit

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. hash MD5 en C, pas facile !
    Par jack_x4 dans le forum C
    Réponses: 14
    Dernier message: 08/03/2009, 09h14
  2. La fonction hash table
    Par lesguignols dans le forum Fortran
    Réponses: 2
    Dernier message: 12/11/2006, 18h32
  3. reconnaitre hash md5
    Par killuaster dans le forum Modules
    Réponses: 2
    Dernier message: 15/10/2006, 19h54
  4. Retrouver texte clair à partir d'un hash MD5
    Par webrider dans le forum Administration
    Réponses: 4
    Dernier message: 06/09/2006, 18h45
  5. [phpBB] Récupération des hash MD5 et login (phpbb) pour transfert
    Par julian-brokendolls dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 29/03/2006, 18h29

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