Erstellt man einen MD5-Hash der Ursprungsdatei kann man diesen mit dem der neu erstellten Datei vergleichen um zu prüfen, ob die Dateien übereinstimmen. Ist das nicht der Fall, so ist beim Download/Upload etwas schief gelaufen.
Einen MD5-Hash kann man ganz einfach wie folgt erstellen.
// Gibt einen MD5-Hash-String für eine Datei zurück
public static string GetMd5HashString(string filePath)
{
// Datei in neues FileStream-Objekt einlesen
FileStream fileStream = new FileStream(filePath, FileMode.Open);
// Neues Objekt für MD5-Kryptographi-Provider erstellen
MD5 md5 = new MD5CryptoServiceProvider();
// ByteArray mit MD5-Hash der eingelesenen Datei erstellen
byte[] fileHash = md5.ComputeHash(fileStream);
// FileStream mit eingelesener Datei wieder schließen
fileStream.Close();
// StringBuilder-Objekt erstellen um anschließend den MD5-Hash als String zu speichern
StringBuilder sb = new StringBuilder();
// MD5-Hash (ByteArray) byteweise verarbeiten und an StringBuilder anhängen
for (int i = 0; i < fileHash.Length; i++)
{
sb.Append(fileHash[i].ToString("x2"));
}
// MD5-Hash als String ausgeben
return sb.ToString();
}
Keine Kommentare:
Kommentar veröffentlichen