DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Berechnen von MD5-Hashwerten in DIAdem 2012

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

0 Kudos
Message 1 of 5
(5,884 Views)

Hallo FlKoch,

 

leider gibt es kein fertigen Beispiele für die MD5 codierung in DIAdem.

 

Mit freundlichen Grüßen

Roman

 

 

 

Roman Rolnik
Application Engineer
NI Germany
0 Kudos
Message 2 of 5
(5,858 Views)

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

0 Kudos
Message 3 of 5
(5,854 Views)

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

0 Kudos
Message 4 of 5
(5,838 Views)

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

Message 5 of 5
(5,824 Views)