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(Criptografa("Essa e uma string de teste.")))
Catch ex as Exception
Console.WriteLine(ex)
End Try
End Sub
End Class
SW1wb3J0cyBTeXN0ZW0KSW1wb3J0cyBTeXN0ZW0uVGV4dApJbXBvcnRzIFN5c3RlbS5TZWN1cml0eS5DcnlwdG9ncmFwaHkKClB1YmxpYyBDbGFzcyBDcmlwdG9ncmFmaWEKICAgIFByaXZhdGUgU2hhcmVkIFRyaXBsZURFUyBBcyBOZXcgVHJpcGxlREVTQ3J5cHRvU2VydmljZVByb3ZpZGVyCiAgICBQcml2YXRlIFNoYXJlZCBNRDUgQXMgTmV3IE1ENUNyeXB0b1NlcnZpY2VQcm92aWRlcgogICAgCiAgICBQcml2YXRlIENvbnN0IENoYXZlIEFzIFN0cmluZyA9ICJURVNURSIKICAgIAogICAgUHVibGljIFNoYXJlZCBGdW5jdGlvbiBNRDVIYXNoKEJ5VmFsIHZhbHVlIEFzIFN0cmluZykgQXMgQnl0ZSgpCiAgICAgICAgRGltIGJ5dGVBcnJheSgpIEFzIEJ5dGUgPSBBU0NJSUVuY29kaW5nLlVURjguR2V0Qnl0ZXModmFsdWUpCiAgICAgICAgUmV0dXJuIE1ENS5Db21wdXRlSGFzaChieXRlQXJyYXkpCiAgICBFbmQgRnVuY3Rpb24KICAgIAogICAgUHVibGljIFNoYXJlZCBGdW5jdGlvbiBDcmlwdG9ncmFmYShCeVZhbCBzdHJpbmdUb0VuY3J5cHQgQXMgU3RyaW5nKSBBcyBTdHJpbmcKICAgICAgICBUcmlwbGVERVMuS2V5ID0gQ3JpcHRvZ3JhZmlhLk1ENUhhc2goQ2hhdmUpCiAgICAgICAgVHJpcGxlREVTLk1vZGUgPSBDaXBoZXJNb2RlLkVDQgogICAgICAgIAogICAgICAgIERpbSBCdWZmZXIgYXMgQnl0ZSgpID0gQVNDSUlFbmNvZGluZy5BU0NJSS5HZXRCeXRlcyhzdHJpbmdUb0VuY3J5cHQpCiAgICAgICAgUmV0dXJuIENvbnZlcnQuVG9CYXNlNjRTdHJpbmcoVHJpcGxlREVTLkNyZWF0ZUVuY3J5cHRvcigpLlRyYW5zZm9ybUZpbmFsQmxvY2soQnVmZmVyLCAwLCBCdWZmZXIuTGVuZ3RoKSkKICAgIEVuZCBGdW5jdGlvbgogICAgCiAgICBQdWJsaWMgU2hhcmVkIEZ1bmN0aW9uIERlc2NyaXB0b2dyYWZhKEJ5VmFsIGVuY3J5cHRlZFN0cmluZyBBcyBTdHJpbmcpIEFzIFN0cmluZwogICAgICAgIFRyaXBsZURFUy5LZXkgPSBDcmlwdG9ncmFmaWEuTUQ1SGFzaChDaGF2ZSkKICAgICAgICBUcmlwbGVERVMuTW9kZSA9IENpcGhlck1vZGUuRUNCCiAgICAgICAgCiAgICAgICAgRGltIEJ1ZmZlciBhcyBCeXRlKCkgPSBDb252ZXJ0LkZyb21CYXNlNjRTdHJpbmcoZW5jcnlwdGVkU3RyaW5nKQogICAgICAgIFJldHVybiBBU0NJSUVuY29kaW5nLkFTQ0lJLkdldFN0cmluZyhUcmlwbGVERVMuQ3JlYXRlRGVjcnlwdG9yKCkuVHJhbnNmb3JtRmluYWxCbG9jayhCdWZmZXIsIDAsIEJ1ZmZlci5MZW5ndGgpKQogICAgRW5kIEZ1bmN0aW9uCgoJUHVibGljIFNoYXJlZCBTdWIgTWFpbigpCgkgICAgVHJ5CgkgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKERlc2NyaXB0b2dyYWZhKENyaXB0b2dyYWZhKCJFc3NhIGUgdW1hIHN0cmluZyBkZSB0ZXN0ZS4iKSkpCgkgICAgQ2F0Y2ggZXggYXMgRXhjZXB0aW9uCgkgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKGV4KQoJICAgIEVuZCBUcnkKCUVuZCBTdWIKRW5kIENsYXNz