09-04-2014 12:28 PM - edited 09-04-2014 12:29 PM
Hallo zusammen,
ich bin auf der Suche nach einer Möglichkeit, in DIAdem 2012 den MD5-Hashwert
für eine jeweils gegebene Binärdatei zu berechnen.
Gibt es hier bereits fertige Lösungen, wie bspw. für LabVIEW?
Was wäre hier die beste Ansatzweise?
Vielen Dank für Antworten!!
Gruß,
FlKoch
09-05-2014 06:26 AM
Hallo FlKoch,
leider gibt es kein fertigen Beispiele für die MD5 codierung in DIAdem.
Mit freundlichen Grüßen
Roman
09-05-2014 06:44 AM
Hallo nochmals,
danke für die Antwort.
Ich habe mir in der Zwischenzeit aus verschiedensten Quellen letztendlich die folgende Lösung 'zurechtgebastelt'.
Der erzeugte Hash-Wert stimmt dem eines anderen Generators überein.
Ich nutze hierbei die .NET-Klasse MD5CryptoServiceProvider, welche ich mit einem ADODB-Stream 'füttere', und konvertiere anschließend das Ergebnis in einen Hex-String.
Private Function ByteArrayToHexStr(ByVal fByteArray) Dim k ByteArrayToHexStr = "" For k = 1 To Lenb(fByteArray) ByteArrayToHexStr = ByteArrayToHexStr & Right("0" & Hex(Ascb(Midb(fByteArray, k, 1))), 2) Next End Function Public Function GenerateMD5ForFile(ByRef fFileName) Dim strBin : Set strBin = CreateObject("ADODB.Stream") Dim oMD5 : Set oMD5 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider") Dim baHash strBin.Type = 1 'adTypeBinary strBin.Open() oMD5.Initialize() strBin.LoadFromFile(fFileName) strBin.Position = 0 baHash = oMD5.ComputeHash_2(strBin.Read()) '2. Überladung von <ComputeHash> GenerateMD5ForFile = ByteArrayToHexStr(baHash) strBin.Close() End Function
Gruß,
FlKoch
09-06-2014 07:36 AM
Hallo,
danke für die ausführliche Lösung. Was mitr aufgefallen ist, ist das die .NET Farmework Klassen für gewöhnlich nicht über "CreateObject" zu erreichen sind. Gibt es da einen besonderen Weg diese doch anzusprechen ?
Andreas
09-07-2014 02:19 PM
Es gibt für die meisten .NET-"System"-Klassen eine COM-Schnittstelle:
http://technet.microsoft.com/de-de/magazine/2007.01.heyscriptingguy.aspx
Gruß,
FlKoch