Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
681 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Aide pour passage fichier dans hash MD5

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Aide pour passage fichier dans hash MD5

n°2031455
moiguigui6​0
Posté le 22-10-2010 à 14:43:07  profilanswer
 

Bonjour,
 
Je suis débutant en C#. Je dois réaliser le hash md5 d'un fichier mais je ne sais pas trop comment faire.
 
Au début je voulais passer le fichier en argument de ma fonction md5 mais visiblement ce n'est pas possible. On m'a donc orienté vers l'ouverture du fichier dans la fonction md5.
 
J'arrive à ouvrir un fichier, j'ai ma fonction md5 mais je ne sais pas faire ce que je viens de vous expliquer juste au dessus.
 
Est ce que vous pouvez m'aider? :(  
 
Merci beaucoup

mood
Publicité
Posté le 22-10-2010 à 14:43:07  profilanswer
 

n°2031597
Taliesim
Posté le 22-10-2010 à 20:34:26  profilanswer
 

Est ce que tu as compris ce que tu devais retourner? Ca sera sous quelle forme?  
C'est à mon avis plus du coté de la compréhension de la problématique que tu devrais creuser..  
Niveau programmation rien de trés difficile ( ouverture - hash - fermeture - traitement bitàbit - on retourne le hashé)

Message cité 1 fois
Message édité par Taliesim le 22-10-2010 à 20:43:28
n°2031602
moiguigui6​0
Posté le 22-10-2010 à 21:00:02  profilanswer
 

Taliesim a écrit :

Est ce que tu as compris ce que tu devais retourner? Ca sera sous quelle forme?  
C'est à mon avis plus du coté de la compréhension de la problématique que tu devrais creuser..  
Niveau programmation rien de trés difficile ( ouverture - hash - fermeture - traitement bitàbit - on retourne le hashé)


 
Justement c'est la qu'est le problème. Est ce que tu pourrais m'expliquer un peu ou c'est trop compliqué?
Normalement la fonction md5 retourne un chiffre en hexadecimal c'est ça?
 
Merci pour ton aide

n°2031608
Taliesim
Posté le 22-10-2010 à 21:13:57  profilanswer
 

moiguigui60 a écrit :


 
Justement c'est la qu'est le problème. Est ce que tu pourrais m'expliquer un peu ou c'est trop compliqué?
Normalement la fonction md5 retourne un chiffre en hexadecimal c'est ça?
 
Merci pour ton aide


Oui c'est ça  :)  
Donc tu ouvres le fichier ( du genre FileStream stream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read, 8192);
) ,tu fais ton hash ensuite sur celui ci ( du genre md5.ComputeHash(stream); ) ,tu refermes ton fichier ( stream.Close();
).  
Tu dois appliquer sur le hash un traitement pour le retourner, essaye de trouver comment le construire ( indice surement une boucle)
 
edit : je te mets une solution proposée online  http://sharpertutorials.com/calcul [...] ksum-file/ , essaye de te creuser la tete un peu avant :o .

Message cité 1 fois
Message édité par Taliesim le 22-10-2010 à 21:47:37
n°2031668
moiguigui6​0
Posté le 23-10-2010 à 10:05:44  profilanswer
 

Merci beaucoup de ton aide, c'est cool de m'aider comme ça. Je vais essayer ce que tu m'expliques.

n°2031712
moiguigui6​0
Posté le 23-10-2010 à 15:17:31  profilanswer
 

Bonjour,
 
Alors j'ai essayé ce que tu m'a expliqué mais pour le moment je coince sur l'ouverture, je m'explique:  
En fait je bloque toujours sur l'utilisation du md5,
Dans le programme il y a la methode?(fonction?) pour le md5 et il y a le "main". L'ouverture du fichier je la mets dans le "main", ensuite j'appelle la fonction "md5" dans laquelle j'envoie le fichier qu'on vient d'ouvrir puis je referme le fichier c'est ca?
 
 
J'ai trouvé cette fonction pour effectuer le md5, il y a une différence par rapport à celle que tu vient de me donner hormis que le code est différent?
 
public string MD5HashFile(string FileName)
            {
                byte[] result;
                string HashString;
 
 
                System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
                System.IO.Stream stream = System.IO.File.OpenRead(FileName);
 
                result = md5.ComputeHash(stream);
                stream.Close();
                System.Text.StringBuilder output = new System.Text.StringBuilder(2 + (result.Length * 2));
 
                foreach (byte b in result)
                {
                output.Append(b.ToString("x2" ));
                }
                HashString = output.ToString().ToUpper();
 
                return HashString;
                }

n°2031719
moiguigui6​0
Posté le 23-10-2010 à 16:18:35  profilanswer
 

Taliesim a écrit :


Oui c'est ça  :)
Donc tu ouvres le fichier ( du genre FileStream stream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read, 8192);
) ,tu fais ton hash ensuite sur celui ci ( du genre md5.ComputeHash(stream); ) ,tu refermes ton fichier ( stream.Close();
).
Tu dois appliquer sur le hash un traitement pour le retourner, essaye de trouver comment le construire ( indice surement une boucle)

 

edit : je te mets une solution proposée online  http://sharpertutorials.com/calcul [...] ksum-file/ , essaye de te creuser la tete un peu avant :o .

 


J'ai réalisé le code suivant mais dans  le try le "md5" me marque une erreur: le nom 'md5' n'existe pas dans le contexte actuel.

 


using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Net;
using System.Security.Cryptography;

 

namespace ConsoleApplication8
{
    class Program
    {
        static void Main(string[] args)
        {

 

          FileStream stream = new FileStream("D:\\final.c", FileMode.Open, FileAccess.Read, FileShare.Read);

 

           
            try
            {
               md5.ComputeHash(stream);
            }

 

           finally
            {
                stream.Close();
            }

 

       }

 

       protected string GetMD5HashFromFile(string fileName)
        {
            FileStream file = new FileStream(fileName, FileMode.Open);
            MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
            byte[] retVal = md5.ComputeHash(file);
            file.Close();

 

           StringBuilder sb = new StringBuilder();
            for (int i = 0; i < retVal.Length; i++)
            {
                sb.Append(retVal[i].ToString("x2" ));
            }
            return sb.ToString();
        }
       
           
        }
}

 


Qu'est ce que je peux faire?

 

Merci


Message édité par moiguigui60 le 23-10-2010 à 16:18:58
n°2031991
ov3rflow
How Do You Do, Fellow Kids?
Posté le 25-10-2010 à 13:57:00  profilanswer
 

Ouch, en lisant ton code, je pense que tu devrais déjà commencer par les bases de la programmation: Appel de fonctions, instanciation d'objet...
 
Ce que tu écris la laisse penser que tu ne maitrise pas du tout les bases.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Aide pour passage fichier dans hash MD5

 

Sujets relatifs
[Python] Comparer rapidement 10'000 objets, besoin d'aideSAX pour Java - écriture d'un fichier HTML
Passer un argument à un batch sans passer par un fichierCréer un fichier XML à partir d'un formulaire
aide pour code assembleur[Apprentissage] Passage de Java à C#
Copie de feuilles sur un fichier globalRécupérer taille réelle d'un fichier gzcompressé sans le décompresser
Comment créer des fichier de dependence avec microsoft compiler 
Plus de sujets relatifs à : Aide pour passage fichier dans hash MD5


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR