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

Java Discussion :

Calcul du md5 de millions de fichiers


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Par défaut Calcul du md5 de millions de fichiers
    Et oui c'est encore moi >< xD

    J'ai effectué un programme qui parcourt entre 5 000 000 et 10 000 000 de fichier, et qui en fait une signature (MD5).
    Le programme s'exécute sur une machine red hat.
    J'ai donc créé une méthode qui exécute un commande linux : "md5sum /test/test/test" et je récupère le retour.
    Je voulais savoir s’il y avait possibilité d'améliorer les performances de cette méthode, ou si il y a un tout autre moyen de faire ?
    Merci d'avance,
    Voilà ma méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    public static final String hashFile(String path) {
            String hashToReturn = "";
            try {
                String algo = Constants.getHashAlgorithm(); // return "md5"
                String[] tmpPath = path.split(" ");
                String pathToUse = tmpPath[0];
                String cmd = algo + "sum -b " + pathToUse;
                Process p = Runtime.getRuntime().exec(cmd);
                p.waitFor();
                BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
     
                String line;
                String tmp[];
                while ((line = reader.readLine()) != null) {
                    tmp = line.split(" ");
                    hashToReturn = tmp[0];
                }
                reader.close();
                p.destroy();
            } catch (Exception e) {
                System.out.println("Problem hashing file ! (" + path + ")");
                if (hashToReturn.equals("")) {
                    hashToReturn = "notHashed";
                }
            }
            return hashToReturn;
        }
    Merci !

  2. #2
    Membre très actif Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Par défaut
    Personne n'a d'idée ? :'(

    J'vais alors réduire ma question,

    Pensez-vous qu'il est plus rapide d'exécuter md5sum (Commande Shell), ou alors de coder la méthode de hachage ?

  3. #3
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Vu le nombre de fichier, ca serait surement mieux de coder la fonction et le faire toi meme...

  4. #4
    Membre très actif Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Par défaut
    Salut,

    Merci pour ta réponse.
    Donc tu penses que ça serrait plus performant. Hum okey
    Mais comment dev ça en Java ? Là c'est une autre histoire ^^
    Mais ya surement une lib qui fait ça non ?
    Ou en tout cas ya déjà quelqu'un qui l'a fait je suppose ^^
    Allé ça mérite une petite recherche

  5. #5
    Invité de passage
    Homme Profil pro
    bioinformaticien
    Inscrit en
    Septembre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Suisse

    Informations professionnelles :
    Activité : bioinformaticien

    Informations forums :
    Inscription : Septembre 2014
    Messages : 1
    Par défaut
    Salut,

    Citation Envoyé par Sennad Voir le message
    Salut,

    Merci pour ta réponse.
    Donc tu penses que ça serrait plus performant. Hum okey
    Mais comment dev ça en Java ? Là c'est une autre histoire ^^
    Mais ya surement une lib qui fait ça non ?
    Ou en tout cas ya déjà quelqu'un qui l'a fait je suppose ^^
    Allé ça mérite une petite recherche
    Une DigestInputStream construite avec un MessageDigest.getInstance("MD5") fonctionne bien et me donne des performance similaires comparé à md5sum.
    Un coup de google donne plein d'exemples.

  6. #6
    Membre très actif Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Par défaut
    Salut,

    Merci beaucoup pour ta réponse, je vais regarder ça

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

Discussions similaires

  1. comment calculer le md5 du contenu d'un fichier
    Par c.plus.plus dans le forum Débuter
    Réponses: 6
    Dernier message: 01/01/2012, 17h54
  2. Calculer le MD5/SHA-256 d'un fichier
    Par PierrotY dans le forum Sécurité
    Réponses: 26
    Dernier message: 06/04/2009, 09h35
  3. calcul et boucle sur lecture de fichier
    Par marinaetsonchat dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 22/11/2007, 15h15
  4. Proramme qui calcul l'espace que prend un fichier sur le HDD
    Par snoopy69 dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 26/01/2007, 17h05
  5. Calculer le MD5 d'un fichier octet par octet
    Par bouazza92 dans le forum C
    Réponses: 5
    Dernier message: 09/08/2006, 20h39

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