Nr4 VB.net - Hash Validator class


SUBMITTED BY: TheSwarm

DATE: Oct. 24, 2015, 9:56 a.m.

FORMAT: Text only

SIZE: 1.7 kB

HITS: 2903

  1. Imports System.Text.RegularExpressions
  2. Public Class HashValidator
  3. Public Enum ALGO As Integer
  4. CRC16 = 4
  5. CRC32 = 8
  6. MD5 = 32
  7. SHA1 = 40
  8. SHA256 = 64
  9. SHA384 = 96
  10. SHA512 = 128
  11. End Enum
  12. Public Shared Function IsValid(ByVal Expression As String, ByVal Algorythm As ALGO) As Boolean
  13. Dim Validator As Regex = Nothing
  14. Select Case Algorythm
  15. Case ALGO.CRC16 : Validator = New Regex("^([a-fA-F0-9]){4}$")
  16. Case ALGO.CRC32 : Validator = New Regex("^([a-fA-F0-9]){8}$")
  17. Case ALGO.MD5 : Validator = New Regex("^([a-fA-F0-9]){32}$")
  18. Case ALGO.SHA1 : Validator = New Regex("^([a-fA-F0-9]){40}$")
  19. Case ALGO.SHA256 : Validator = New Regex("^([a-fA-F0-9]){64}$")
  20. Case ALGO.SHA384 : Validator = New Regex("^([a-fA-F0-9]){96}$")
  21. Case ALGO.SHA512 : Validator = New Regex("^([a-fA-F0-9]){128}$")
  22. End Select
  23. Return Validator.IsMatch(Expression)
  24. End Function
  25. Public Shared Function IsValid(ByVal Expression() As Byte, ByVal Algorythm As ALGO) As Boolean
  26. Dim TmpValue As String = ""
  27. Dim HashString As String = ""
  28. For i As Integer = 0 To Expression.Length - 1
  29. TmpValue = Hex(Expression(i))
  30. If Len(TmpValue) = 1 Then TmpValue = "0" & TmpValue
  31. HashString &= TmpValue
  32. Next
  33. Return IsValid(HashString, Algorythm)
  34. End Function
  35. End Class

comments powered by Disqus