Feedback

VB - Den MD5 Hash einer Datei ermitteln

Veröffentlicht von am 03.06.2006
(1 Bewertungen)
Den MD5 Hash einer Datei ermitteln
GFU-Schulungen  [Anzeige]

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

Imports System.Security.Cryptography
Imports System.Text
Imports System.IO

Public Function MD5FileHash(ByVal sFile As String) As String
    Dim MD5 As New MD5CryptoServiceProvider
    Dim Hash As Byte()
    Dim Result As String = ""
    Dim Tmp As String = ""

    Dim FN As New FileStream(sFile, FileMode.Open, FileAccess.Read, FileShare.Read, 8192)
    MD5.ComputeHash(FN)
    FN.Close()

    Hash = MD5.Hash
    For i As Integer = 0 To Hash.Length - 1
        Tmp = Hex(Hash(i))
        If Len(Tmp) = 1 Then Tmp = "0" & Tmp
        Result += Tmp
    Next
    Return Result
End Function
Abgelegt unter MD5, Hash, Datei.

4 Kommentare zum Snippet

Zen schrieb am 28.04.2007:
Wenn man die For/Next-Schleife mit dieser Zeile ersetzt, ist der Code nochmal bisschen kürzer ;)
Result = Strings.Replace(BitConverter.ToString(Hash), "-", "")
Tim Hartwig schrieb am 28.04.2007:
Super das ist natürlich viel besser. Danke für den Tipp!
General Bison schrieb am 17.04.2008:
Hi
ich habe eine andere Methode gefunden, die allerdings einen ganz anderen Hashwert liefert, dafür aber VIEL SCHNELLER IST!
Ich habe aber leider KEINE AHNUNG von der Mathematik, die dahinter steht...
Wäre schön, wenn das mal jemand mit mehr Ahnung als ich unter die Lupe nimmt

Folgende Zeitmessungen habe ich bei einer 1.1 GB großen Datei gemacht
(jeweils Min und Maxwert):

activevb:
"55243ECF175013CFE9890023F9FD9037"
ElapsedTicks = 188235
ElapsedTicks = 349

Tim Hartwig:
"FAE29D6C14FA1A3E405AEFCC96959040"
ElapsedTicks = 136619208
ElapsedTicks = 40328337

http://www.activevb.de/rubriken/faq/faq0137.html

Dim data() As Byte = System.Text.Encoding.UTF8.GetBytes("Hallo Welt!")
Dim md5 As New System.Security.Cryptography.MD5CryptoServiceProvider()
Dim result As Byte() = md5.ComputeHash(data)
Dim ret As String
ret = Strings.Replace(BitConverter.ToString(result), "-", "")
General Bison schrieb am 17.04.2008:
Hat sich erledigt....
Ich hab nen fehler gemacht und einmal ZUVIEL auf Rückgängig geklickt....
 
System.Text.Encoding.UTF8.GetBytes("Hallo Welt!")

klar geht das schnell... sry für die überflüssigen Posts
 

Logge dich ein, um hier zu kommentieren!