CryptoSys API examples VB6 to VB.NET

HASH_File

Creates a message digest hash in byte format for a file.

VB6/VBA

Debug.Print "Testing HASH_File ..."
Dim nRet As Long
Dim abDigest() As Byte
Dim sFileName As String

' File to be hashed contains a total of 13 bytes: "hello world" plus CR-LF
' 68 65 6c 6c 6f 20 77 6f 72 6c 64 0d 0a   hello world..

sFileName = ".\hello.txt"

' Pre-dimension digest array - do this each time
ReDim abDigest(API_MAX_HASH_BYTES)

' Create default hash (SHA1) in binary mode
nRet = HASH_File(abDigest(0), API_MAX_HASH_BYTES, sFileName, 0)
If nRet > 0 Then ReDim Preserve abDigest(nRet - 1)
Debug.Print nRet, cnvHexStrFromBytes(abDigest)

' Use SHA1 in "text" mode
ReDim abDigest(API_MAX_HASH_BYTES)
nRet = HASH_File(abDigest(0), API_MAX_HASH_BYTES, sFileName, API_HASH_MODE_TEXT)
If nRet > 0 Then ReDim Preserve abDigest(nRet - 1)
Debug.Print nRet, cnvHexStrFromBytes(abDigest)

' Use MD5
ReDim abDigest(API_MAX_HASH_BYTES)
nRet = HASH_File(abDigest(0), API_MAX_HASH_BYTES, sFileName, API_HASH_MD5)
If nRet > 0 Then ReDim Preserve abDigest(nRet - 1)
Debug.Print nRet, cnvHexStrFromBytes(abDigest)

' Use MD5 in "text" mode
ReDim abDigest(API_MAX_HASH_BYTES)
nRet = HASH_File(abDigest(0), API_MAX_HASH_BYTES, sFileName, API_HASH_MD5 Or API_HASH_MODE_TEXT)
If nRet > 0 Then ReDim Preserve abDigest(nRet - 1)
Debug.Print nRet, cnvHexStrFromBytes(abDigest)

Output

Testing HASH_File ...
 20           88A5B867C3D110207786E66523CD1E4A484DA697
 20           22596363B3DE40B06F981FB85D82312E8C0ED511
 16           A0F2A3C1DCD5B1CAC71BF0C03F2FF1BD
 16           6F5902AC237024BDD0C176CB93063DC4

VB.NET

Console.WriteLine("Testing HASH_File ...")
''Dim nRet As Integer
Dim abDigest() As Byte
Dim sFileName As String
Dim strDigest As String

' File to be hashed contains a total of 13 bytes: "hello world" plus CR-LF
' 68 65 6c 6c 6f 20 77 6f 72 6c 64 0d 0a   hello world..

sFileName = ".\hello.txt"

' Pre-dimension digest array - do this each time
''ReDim abDigest(API_MAX_HASH_BYTES)

' Create default hash (SHA1) in binary mode
abDigest = Hash.BytesFromFile(sFileName, HashAlgorithm.Sha1)
''If nRet > 0 Then ReDim Preserve abDigest(nRet - 1)
Console.WriteLine(abDigest.Length & " " & Cnv.ToHex(abDigest))

' Use SHA1 in "text" mode
' [VB.NET] Only option in v4.2 for a "text" file is to use HexFromTextFile
strDigest = Hash.HexFromTextFile(sFileName, HashAlgorithm.Sha1)
Console.WriteLine(strDigest.Length & " " & strDigest)

' Use MD5
''ReDim abDigest(API_MAX_HASH_BYTES)
abDigest = Hash.BytesFromFile(sFileName, HashAlgorithm.Md5)
''If nRet > 0 Then ReDim Preserve abDigest(nRet - 1)
Console.WriteLine(abDigest.Length & " " & Cnv.ToHex(abDigest))

' Use MD5 in "text" mode
strDigest = Hash.HexFromTextFile(sFileName, HashAlgorithm.Md5)
Console.WriteLine(strDigest.Length & " " & strDigest)

[Contents]

[HOME]   [NEXT: HASH_HexFromBytes...]

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