Creates a message digest hash in hexadecimal format from byte (or string) data.
VB6/VBA
Debug.Print "Testing HASH_HexFromBytes ..." Dim nRet As Long Dim sDigest As String Dim abMessage() As Byte ' Set up message to be hashed in unambiguous Byte format abMessage = StrConv("abc", vbFromUnicode) ' Pre-dimension digest string sDigest = String(API_MAX_HASH_CHARS, " ") ' Create default hash (SHA1) nRet = HASH_HexFromBytes(sDigest, Len(sDigest), abMessage(0), 3, 0) Debug.Print nRet, Left(sDigest, nRet) ' Explicitly use SHA1 nRet = HASH_HexFromBytes(sDigest, Len(sDigest), abMessage(0), 3, API_HASH_SHA1) Debug.Print nRet, Left(sDigest, nRet) ' Pre-dimension digest string and use MD5 sDigest = String(API_MD5_CHARS, " ") nRet = HASH_HexFromBytes(sDigest, Len(sDigest), abMessage(0), 3, API_HASH_MD5) Debug.Print nRet, sDigest ' Pre-dimension digest string and use MD2 sDigest = String(API_MD5_CHARS, " ") nRet = HASH_HexFromBytes(sDigest, Len(sDigest), abMessage(0), 3, API_HASH_MD2) Debug.Print nRet, sDigest ' Make output string shorter - only get back that many chars sDigest = String(16, " ") nRet = HASH_HexFromBytes(sDigest, Len(sDigest), abMessage(0), 3, API_HASH_SHA1) Debug.Print nRet, sDigest
Output
Testing HASH_HexFromBytes ... 40 a9993e364706816aba3e25717850c26c9cd0d89d 40 a9993e364706816aba3e25717850c26c9cd0d89d 32 900150983cd24fb0d6963f7d28e17f72 32 da853b0d3f88d99b30283a69e6ded6bb 16 a9993e364706816a
VB.NET
Console.WriteLine("Testing HASH_HexFromBytes ...") ''Dim nRet As Integer Dim sDigest As String Dim abMessage() As Byte ' Set up message to be hashed in unambiguous Byte format abMessage = System.Text.Encoding.Default.GetBytes("abc") ' Pre-dimension digest string ''sDigest = String(API_MAX_HASH_CHARS, " ") ' Create default hash (SHA1) sDigest = Hash.HexFromBytes(abMessage, 0) Console.WriteLine(sDigest.Length & " " & sDigest) ' Explicitly use SHA1 sDigest = Hash.HexFromBytes(abMessage, HashAlgorithm.Sha1) Console.WriteLine(sDigest.Length & " " & sDigest) ' Pre-dimension digest string and use MD5 ''sDigest = String(API_MD5_CHARS, " ") sDigest = Hash.HexFromBytes(abMessage, HashAlgorithm.Md5) Console.WriteLine(sDigest.Length & " " & sDigest) ' Pre-dimension digest string and use MD2 ''sDigest = String(API_MD5_CHARS, " ") sDigest = Hash.HexFromBytes(abMessage, HashAlgorithm.Md2) Console.WriteLine(sDigest.Length & " " & sDigest) ' Make output string shorter - only get back that many chars ''sDigest = String(16, " ") ' [VB.NET] In .NET we can only truncate the digest string AFTER creating it sDigest = Hash.HexFromBytes(abMessage, HashAlgorithm.Sha1) sDigest = sDigest.Substring(0, 16) Console.WriteLine(sDigest.Length & " " & sDigest)
[Contents]