Imports System.Text.RegularExpressions Public Class HashValidator Public Enum ALGO As Integer CRC16 = 4 CRC32 = 8 MD5 = 32 SHA1 = 40 SHA256 = 64 SHA384 = 96 SHA512 = 128 End Enum Public Shared Function IsValid(ByVal Expression As String, ByVal Algorythm As ALGO) As Boolean Dim Validator As Regex = Nothing Select Case Algorythm Case ALGO.CRC16 : Validator = New Regex("^([a-fA-F0-9]){4}$") Case ALGO.CRC32 : Validator = New Regex("^([a-fA-F0-9]){8}$") Case ALGO.MD5 : Validator = New Regex("^([a-fA-F0-9]){32}$") Case ALGO.SHA1 : Validator = New Regex("^([a-fA-F0-9]){40}$") Case ALGO.SHA256 : Validator = New Regex("^([a-fA-F0-9]){64}$") Case ALGO.SHA384 : Validator = New Regex("^([a-fA-F0-9]){96}$") Case ALGO.SHA512 : Validator = New Regex("^([a-fA-F0-9]){128}$") End Select Return Validator.IsMatch(Expression) End Function Public Shared Function IsValid(ByVal Expression() As Byte, ByVal Algorythm As ALGO) As Boolean Dim TmpValue As String = "" Dim HashString As String = "" For i As Integer = 0 To Expression.Length - 1 TmpValue = Hex(Expression(i)) If Len(TmpValue) = 1 Then TmpValue = "0" & TmpValue HashString &= TmpValue Next Return IsValid(HashString, Algorythm) End Function End Class