Imports System
Imports System.Text
Imports System.Security.Cryptography

Public Class Criptografia
    Private Shared TripleDES As New TripleDESCryptoServiceProvider
    Private Shared MD5 As New MD5CryptoServiceProvider
    
    Private Const Chave As String = "TESTE"
    
    Public Shared Function MD5Hash(ByVal value As String) As Byte()
        Dim byteArray() As Byte = ASCIIEncoding.UTF8.GetBytes(value)
        Return MD5.ComputeHash(byteArray)
    End Function
    
    Public Shared Function Criptografa(ByVal stringToEncrypt As String) As String
        TripleDES.Key = Criptografia.MD5Hash(Chave)
        TripleDES.Mode = CipherMode.ECB
        
        Dim Buffer as Byte() = ASCIIEncoding.ASCII.GetBytes(stringToEncrypt)
        Return Convert.ToBase64String(TripleDES.CreateEncryptor().TransformFinalBlock(Buffer, 0, Buffer.Length))
    End Function
    
    Public Shared Function Descriptografa(ByVal encryptedString As String) As String
        TripleDES.Key = Criptografia.MD5Hash(Chave)
        TripleDES.Mode = CipherMode.ECB
        
        Dim Buffer as Byte() = Convert.FromBase64String(encryptedString)
        Return ASCIIEncoding.ASCII.GetString(TripleDES.CreateDecryptor().TransformFinalBlock(Buffer, 0, Buffer.Length))
    End Function

	Public Shared Sub Main()
	    Try
	        Console.WriteLine(Descriptografa("JFYVJVDep2yzpc2ky/wnXA=="))
	    Catch ex as Exception
	        Console.WriteLine(ex)
	    End Try
	End Sub
End Class