This class implements the IHasher interface that you can find here.
'''
''' SHA512 hash class from Satal Keto's library
''' https://samjenkins.com
''' Version 1.0.0.1
'''
Imports System.IO
Imports System.Security.Cryptography
Namespace Security.Hash
Public Class SHA512Hash
Implements IHasher
Public Function hashOfFile(ByVal fileToHash As String) As String Implements IHasher.hashOfFile
Dim rdr As FileStream
Dim sha As New SHA512CryptoServiceProvider
Dim bytes() As Byte
Dim rtn As String = ""
If File.Exists(fileToHash) Then
rdr = New FileStream(fileToHash, FileMode.Open, FileAccess.Read)
bytes = sha.ComputeHash(rdr)
rtn = ByteArrayToString(bytes)
End If
Return rtn
End Function
Public Function hashOfString(ByVal stringToHash As String) As String Implements IHasher.hashOfString
Dim sha As New SHA512CryptoServiceProvider
Dim bytesToHash() As Byte = System.Text.Encoding.ASCII.GetBytes(stringToHash)
bytesToHash = sha.ComputeHash(bytesToHash)
Dim strResult As String = ""
For Each b As Byte In bytesToHash
strResult += b.ToString("x2")
Next
Return strResult
End Function
Private Function ByteArrayToString(ByVal arrInput() As Byte) As String
Dim sb As New System.Text.StringBuilder(arrInput.Length * 2)
For i As Integer = 0 To arrInput.Length - 1
sb.Append(arrInput(i).ToString("X2"))
Next
Return sb.ToString().ToLower
End Function
End Class
End Namespace