Aide pour passage fichier dans hash MD5 - C#/.NET managed - Programmation
Marsh Posté le 22-10-2010 à 20:34:26
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é)
Marsh Posté le 22-10-2010 à 21:00:02
Taliesim a écrit : Est ce que tu as compris ce que tu devais retourner? Ca sera sous quelle forme? |
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
Marsh Posté le 22-10-2010 à 21:13:57
moiguigui60 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 .
Marsh Posté le 23-10-2010 à 10:05:44
Merci beaucoup de ton aide, c'est cool de m'aider comme ça. Je vais essayer ce que tu m'expliques.
Marsh Posté le 23-10-2010 à 15:17:31
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;
}
Marsh Posté le 23-10-2010 à 16:18:35
Taliesim a écrit :
edit : je te mets une solution proposée online http://sharpertutorials.com/calcul [...] ksum-file/ , essaye de te creuser la tete un peu avant . |
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
Marsh Posté le 25-10-2010 à 13:57:00
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.
Marsh Posté le 22-10-2010 à 14:43:07
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