CryptCreateHash: Unterschied zwischen den Versionen

Aus API-Wiki
Wechseln zu: Navigation, Suche
(Beispiel)
Zeile 32: Zeile 32:
  
 
===Beispiel===
 
===Beispiel===
<pre>
+
Ein komplettes Beispiel zum Berechnen von Hashes findet sich unter [[CryptGetHashParam]]
    'Hash Objekt erstellen
 
    If CryptCreateHash(hCryptProv, CALG_MD5, 0, 0, hHash) <> 0 Then
 
        'Daten in Hash Objekt schreiben
 
        If CryptHashData(hHash, VarPtr(btData(0)), UBound(btData) + 1, 0) = 0 Then
 
            Err.Raise Err.LastDllError, , "CryptHashData Error"
 
        End If
 
           
 
        'Länge des Hash's feststellen:
 
        If CryptGetHashParam(hHash, HP_HASHVAL, 0, lHashLen, 0) <> 0 Then
 
        'Hash auslesen:
 
            ReDim btData(lHashLen - 1)
 
            If CryptGetHashParam(hHash, HP_HASHVAL, VarPtr(bData(0)), lHashLen, 0) <> 0 Then
 
                'Success
 
            Else
 
                Err.Raise Err.LastDllError, , "CryptGetHashParam Error"
 
            End If
 
        Else
 
            Err.Raise Err.LastDllError, , "CryptGetHashParam Error"
 
        End If
 
    Else
 
        Err.Raise Err.LastDllError, , "CryptCreateHash Error"
 
    End If
 
 
 
  'Hash wieder zerstören:
 
    If CryptDestroyHash(hHash) = 0 Then
 
        Err.Raise Err.LastDllError, , "CryptDestroyHash Error"
 
    End If
 
</pre>
 
  
 
[[Kategorie:Crypt Api]]
 
[[Kategorie:Crypt Api]]

Version vom 30. März 2007, 21:10 Uhr

Die Funktion CryptCreateHash erstellt ein Hash Objekt mit dem Hash Werte für Daten berechnet werden können.

Declare Function CryptCreateHash Lib "advapi32.dll" ( _
                 ByVal hProv As Long, _
                 ByVal AlgID As Long, _
                 ByVal hKey As Long, _
                 ByVal dwFlags As Long, _
                 ByRef phHash As Long) As Long


Parameter

phProv

[in] Handle zu einem CSP. Ein solches Handle wird mit CryptAcquireContext erzeugt.

AlgID

[in] Definiert den Hashalgorithmus der verwendet wird. Beispiele sind: CALG_MD5 oder CALG_SHA

hKey

[in] Dieser Parameter wird nur für Schlüsselbasierende Hashes verwendet. Für die gängigen, nicht Schlüsselbasierenden Hashes wie MD5 und SHA muss dieser Parameter 0 sein.

dwFlags

[in] derzeit nicht verwendet, muss 0 sein.

phHash

[out] In diesem Long Wert wird das Handle des erstellten Hash Objekts zurückgegeben. Nachdem das Hash Objekt verwendet wurde, muss es mit CryptDestroyHash zerstört werden.

Rückgabe(n)

Bei Erfolg wird ein Wert ungleich 0 zurückgegeben.

Beispiel

Ein komplettes Beispiel zum Berechnen von Hashes findet sich unter CryptGetHashParam