Criptografia usando 3DES em C# e VB.Net
Exemplo de criptografia usando 3DES em C# e VB.NetConst passphrase As String = "2C446B15-732344-4234239-93234456-C1BC52F50478" Public Shared Function Criptografar(Message As String) As String Dim Results As Byte() Dim UTF8 As New System.Text.UTF8Encoding() Dim HashProvider As New MD5CryptoServiceProvider() Dim TDESKey As Byte() = HashProvider.ComputeHash(UTF8.GetBytes(passphrase)) Dim TDESAlgorithm As New TripleDESCryptoServiceProvider() TDESAlgorithm.Key = TDESKey TDESAlgorithm.Mode = CipherMode.ECB TDESAlgorithm.Padding = PaddingMode.PKCS7 Dim DataToEncrypt As Byte() = UTF8.GetBytes(Message) Try Dim Encryptor As ICryptoTransform = TDESAlgorithm.CreateEncryptor() Results = Encryptor.TransformFinalBlock(DataToEncrypt, 0, DataToEncrypt.Length) Finally TDESAlgorithm.Clear() HashProvider.Clear() End Try Return Convert.ToBase64String(Results) End Function Public Shared Function Descriptografar(Message As String) As String Dim Results As Byte() Dim UTF8 As New System.Text.UTF8Encoding() Dim HashProvider As New MD5CryptoServiceProvider() Dim TDESKey As Byte() = HashProvider.ComputeHash(UTF8.GetBytes(passphrase)) Dim TDESAlgorithm As New TripleDESCryptoServiceProvider() TDESAlgorithm.Key = TDESKey TDESAlgorithm.Mode = CipherMode.ECB TDESAlgorithm.Padding = PaddingMode.PKCS7 Dim DataToDecrypt As Byte() = Convert.FromBase64String(Message) Try Dim Decryptor As ICryptoTransform = TDESAlgorithm.CreateDecryptor() Results = Decryptor.TransformFinalBlock(DataToDecrypt, 0, DataToDecrypt.Length) Finally TDESAlgorithm.Clear() HashProvider.Clear() End Try Return UTF8.GetString(Results) End Function
const string passphrase = "2CDD6B23-7345-45789-93565-C3453345345G43453F38"; public static string Criptografar(string Message) { byte[] Results = null; System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding(); MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider(); byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(passphrase)); TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider(); TDESAlgorithm.Key = TDESKey; TDESAlgorithm.Mode = CipherMode.ECB; TDESAlgorithm.Padding = PaddingMode.PKCS7; byte[] DataToEncrypt = UTF8.GetBytes(Message); try { ICryptoTransform Encryptor = TDESAlgorithm.CreateEncryptor(); Results = Encryptor.TransformFinalBlock(DataToEncrypt, 0, DataToEncrypt.Length); } finally { TDESAlgorithm.Clear(); HashProvider.Clear(); } return Convert.ToBase64String(Results); } public static string Descriptografar(string Message) { byte[] Results = null; System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding(); MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider(); byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(passphrase)); TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider(); TDESAlgorithm.Key = TDESKey; TDESAlgorithm.Mode = CipherMode.ECB; TDESAlgorithm.Padding = PaddingMode.PKCS7; byte[] DataToDecrypt = Convert.FromBase64String(Message); try { ICryptoTransform Decryptor = TDESAlgorithm.CreateDecryptor(); Results = Decryptor.TransformFinalBlock(DataToDecrypt, 0, DataToDecrypt.Length); } finally { TDESAlgorithm.Clear(); HashProvider.Clear(); } return UTF8.GetString(Results); }
0 comentários: