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]