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

Rust Discussion :

[RUST 1.70.0] MD5 et hashes qui ne correspondent pas


Sujet :

Rust

  1. #1
    Membre averti

    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2012
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 313
    Points : 354
    Points
    354
    Par défaut [RUST 1.70.0] MD5 et hashes qui ne correspondent pas
    Je deviens fou !!

    Je suis tout content de pouvoir --enfin-- communiquer avec une base de données.
    Dedans j'ai mis des références à des fichiers se trouvant sur le disque dur.
    L'application est censée ajouter certaines infos en provenance de ces fichiers dans la base de données si elles ne s'y trouvent pas déjà.

    Pour pouvoir déterminer si ces infos s'y trouvent déjà je parcours un champs 'Hash' qui contient un md5sum.

    J'ai exécuté 6858555454564654 fois le code et toujours obtenu les même hashes:

    [DEBUG][parsefolders] HASH d4d02ac03000f7442a2650d22c0eefb4
    [DEBUG][parsefolders] HASH 24576187ab81f1079cd899e3fb1f2be3
    [DEBUG][parsefolders] HASH beb6b85e19aa6f40584ab16ea478817b
    [DEBUG][parsefolders] HASH 285cb1dbb0a2fa615cc71d0bf9d16e80
    [DEBUG][parsefolders] HASH 8b152a413e124945d795914bd8c70b62
    [DEBUG][parsefolders] HASH 327ddbc3b0b0d7afc3243d43142bbc04
    [DEBUG][parsefolders] HASH a81d2d7c5e6bab6e9fba3b2297b8d80f
    [DEBUG][parsefolders] HASH 3793d81f6d76fa48d87c49791b2fe9a7
    [DEBUG][parsefolders] HASH 102595f8961393e0a33e8d4d46315d7e
    ...je l'exécute de nouveau...

    [DEBUG][parsefolders] HASH d4d02ac03000f7442a2650d22c0eefb4
    [DEBUG][parsefolders] HASH 24576187ab81f1079cd899e3fb1f2be3
    [DEBUG][parsefolders] HASH beb6b85e19aa6f40584ab16ea478817b
    [DEBUG][parsefolders] HASH 285cb1dbb0a2fa615cc71d0bf9d16e80
    [DEBUG][parsefolders] HASH 8b152a413e124945d795914bd8c70b62
    [DEBUG][parsefolders] HASH 327ddbc3b0b0d7afc3243d43142bbc04
    [DEBUG][parsefolders] HASH a81d2d7c5e6bab6e9fba3b2297b8d80f
    [DEBUG][parsefolders] HASH 3793d81f6d76fa48d87c49791b2fe9a7
    [DEBUG][parsefolders] HASH 102595f8961393e0a33e8d4d46315d7e
    ... allez un dernier pour la route...
    [DEBUG][parsefolders] HASH d4d02ac03000f7442a2650d22c0eefb4
    [DEBUG][parsefolders] HASH 24576187ab81f1079cd899e3fb1f2be3
    [DEBUG][parsefolders] HASH beb6b85e19aa6f40584ab16ea478817b
    [DEBUG][parsefolders] HASH 285cb1dbb0a2fa615cc71d0bf9d16e80
    [DEBUG][parsefolders] HASH 8b152a413e124945d795914bd8c70b62
    [DEBUG][parsefolders] HASH 327ddbc3b0b0d7afc3243d43142bbc04
    [DEBUG][parsefolders] HASH a81d2d7c5e6bab6e9fba3b2297b8d80f
    [DEBUG][parsefolders] HASH 3793d81f6d76fa48d87c49791b2fe9a7
    [DEBUG][parsefolders] HASH 102595f8961393e0a33e8d4d46315d7e
    Donc je me dis: c'est bon c'est bien la signature des infos donc si dans ma base de données je ne trouve pas un hash ça veut dire que le fichier a été ajouté sur le disque dur et qu'il faut insérer les infos probantes dans la table de la base de données...

    ...et bien non... les hashes changent...

    Je n'ai AUCUN hash correspondant à ceux listés dans la base de données pourtant ces fichiers là n'ont PAS ETE AJOUTES...
    MariaDB [TableauDeChasse]> MariaDB [TableauDeChasse]> select idComment, CAST(Comment AS VARCHAR(160)), Hash, Next_Comment FROM Comments WHERE Hash='a81d2d7c5e6bab6e9fba3b2297b8d80f';
    Empty set (0.001 sec)
    ...donc mon programme ajoute des données déjà présentes et je me retrouve avec des doublons :{ (je devrais avoir 6175 tuples en tout et pour tout et je me retrouve avec 12350 tuples donc le double alors que je n'ai ajouté aucun fichier sur le disque dur).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    let rc_epoch :std::time::SystemTime = fichier.as_ref().unwrap().metadata().unwrap().modified().unwrap();
                let datastohash = String::from(format!("{:?}",rc_epoch)+format!("{:?}",fichier.unwrap().path().clone().as_os_str()).as_str());
     
                //eprintln!("[DEBUG][parsefolders] datastohash {}", datastohash.bright_red());
     
                let digest = md5::compute(datastohash);
     
                mappade.Hash = format!("{:48x}", digest).to_string();
     
                eprintln!("[DEBUG][parsefolders] HASH {}", mappade.Hash.bright_green());
     
                MAPPED.push(mappade.clone());
    Je vais rechercher la date de modification du fichier dans les metadatas et je lui concatène le chemin vers ce fichier.
    Dans ma base de données le champs Hash est UNIQUE...

    MariaDB [TableauDeChasse]> describe Comments;
    +--------------+----------------------+------+-----+---------+----------------+
    | Field | Type | Null | Key | Default | Extra |
    +--------------+----------------------+------+-----+---------+----------------+
    | idComment | smallint(5) unsigned | NO | PRI | NULL | auto_increment |
    | Comment | varchar(255) | YES | | Rien | |
    | Hash | varchar(48) | YES | UNI | NULL | |
    | Next_Comment | smallint(5) unsigned | YES | | 0 | |
    +--------------+----------------------+------+-----+---------+----------------+
    Je vais vérifier si après avoir rebooté/fait un log out les hashes sont toujours les mêmes, j'ai un doute là...

    [EDIT]
    Non, ils sont toujours les mêmes... je n'y comprends rien.
    Je vais tout réinjecter dans la base de données et comparer les hashes...

  2. #2
    Membre averti

    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2012
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 313
    Points : 354
    Points
    354
    Par défaut
    J'ai réinjecté les hashes dans la DB et maintenant c'est bon, je sais pas comment j'ai fait pour avoir une table avec des Hashes tous pourris...

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

Discussions similaires

  1. Des textes qui ne correspondent pas aux photos dans ma page !
    Par dhillig dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 07/03/2016, 02h44
  2. Mise en place de div qui ne correspond pas aux pourcentages de width
    Par francky74 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 06/03/2015, 11h10
  3. [Batch] Nombre de fichier qui ne correspond pas avec le nombre réel
    Par chuspyto dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 23/09/2013, 23h50
  4. [AC-2000] contenu d'une table qui ne correspond pas au mode creation
    Par guaguanco dans le forum Access
    Réponses: 4
    Dernier message: 02/06/2010, 15h35
  5. [phpMyAdmin] Un coller qui ne correspond pas au copier du copier/coller
    Par lodan dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 24/02/2007, 12h53

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