Creates a message digest hash as a byte array from byte data.
VB6/VBA
Debug.Print "Testing HASH_Bytes ..." Dim nRet As Long Dim abDigest() As Byte Dim abMessage() As Byte Dim nMsgLen As Long ' Set up message to be hashed abMessage = StrConv("abc", vbFromUnicode) nMsgLen = UBound(abMessage) + 1 ' Pre-dimension digest array (NB zero-based so subtract one) ReDim abDigest(API_MAX_HASH_BYTES - 1) ' Create default hash (SHA1) nRet = HASH_Bytes(abDigest(0), API_MAX_HASH_BYTES, abMessage(0), nMsgLen, 0) If nRet > 0 Then ReDim Preserve abDigest(nRet - 1) Debug.Print nRet, cnvHexStrFromBytes(abDigest) ' Repeat for MD5 ReDim abDigest(API_MAX_HASH_BYTES - 1) nRet = HASH_Bytes(abDigest(0), API_MAX_HASH_BYTES, abMessage(0), nMsgLen, API_HASH_MD5) If nRet > 0 Then ReDim Preserve abDigest(nRet - 1) Debug.Print nRet, cnvHexStrFromBytes(abDigest)
Output
Testing HASH_Bytes ... 20 A9993E364706816ABA3E25717850C26C9CD0D89D 16 900150983CD24FB0D6963F7D28E17F72
VB.NET
Console.WriteLine("Testing HASH_Bytes ...") ''Dim nRet As Integer Dim abDigest() As Byte Dim abMessage() As Byte ''Dim nMsgLen As Integer ' Set up message to be hashed abMessage = System.Text.Encoding.Default.GetBytes("abc") ''nMsgLen = UBound(abMessage) + 1 ' Pre-dimension digest array (NB zero-based so subtract one) ''ReDim abDigest(API_MAX_HASH_BYTES - 1) ' Create default hash (SHA1) abDigest = Hash.BytesFromBytes(abMessage, HashAlgorithm.Sha1) ''If nRet > 0 Then ReDim Preserve abDigest(nRet - 1) Console.WriteLine(abDigest.Length & " " & Cnv.ToHex(abDigest)) ' Repeat for MD5 ''ReDim abDigest(API_MAX_HASH_BYTES - 1) abDigest = Hash.BytesFromBytes(abMessage, HashAlgorithm.Md5) ''If nRet > 0 Then ReDim Preserve abDigest(nRet - 1) Console.WriteLine(abDigest.Length & " " & Cnv.ToHex(abDigest))
[Contents]