CryptoSys API examples VB6 to VB.NET

HASH_Bytes

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]

[HOME]   [NEXT: HASH_File...]

Copyright © 2009-20 D.I. Management Services Pty Ltd. All rights reserved.