fork(1) download
  1. Imports System
  2. Imports System.Text
  3. Imports System.Security.Cryptography
  4.  
  5. Public Class Criptografia
  6. Private Shared TripleDES As New TripleDESCryptoServiceProvider
  7. Private Shared MD5 As New MD5CryptoServiceProvider
  8.  
  9. Private Const Chave As String = "TESTE"
  10.  
  11. Public Shared Function MD5Hash(ByVal value As String) As Byte()
  12. Dim byteArray() As Byte = ASCIIEncoding.UTF8.GetBytes(value)
  13. Return MD5.ComputeHash(byteArray)
  14. End Function
  15.  
  16. Public Shared Function Criptografa(ByVal stringToEncrypt As String) As String
  17. TripleDES.Key = Criptografia.MD5Hash(Chave)
  18. TripleDES.Mode = CipherMode.ECB
  19.  
  20. Dim Buffer as Byte() = ASCIIEncoding.ASCII.GetBytes(stringToEncrypt)
  21. Return Convert.ToBase64String(TripleDES.CreateEncryptor().TransformFinalBlock(Buffer, 0, Buffer.Length))
  22. End Function
  23.  
  24. Public Shared Function Descriptografa(ByVal encryptedString As String) As String
  25. TripleDES.Key = Criptografia.MD5Hash(Chave)
  26. TripleDES.Mode = CipherMode.ECB
  27.  
  28. Dim Buffer as Byte() = Convert.FromBase64String(encryptedString)
  29. Return ASCIIEncoding.ASCII.GetString(TripleDES.CreateDecryptor().TransformFinalBlock(Buffer, 0, Buffer.Length))
  30. End Function
  31.  
  32. Public Shared Sub Main()
  33. Try
  34. Console.WriteLine(Descriptografa("JFYVJVDep2yzpc2ky/wnXA=="))
  35. Catch ex as Exception
  36. Console.WriteLine(ex)
  37. End Try
  38. End Sub
  39. End Class
Success #stdin #stdout 0.11s 25352KB
stdin
Standard input is empty
stdout
System.Security.Cryptography.CryptographicException: Bad PKCS7 padding. Invalid length 17.
  at Mono.Security.Cryptography.SymmetricTransform.ThrowBadPaddingException (PaddingMode padding, Int32 length, Int32 position) [0x00000] in <filename unknown>:0 
  at Mono.Security.Cryptography.SymmetricTransform.FinalDecrypt (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) [0x00000] in <filename unknown>:0 
  at Mono.Security.Cryptography.SymmetricTransform.TransformFinalBlock (System.Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) [0x00000] in <filename unknown>:0 
  at Criptografia.Descriptografa (System.String encryptedString) [0x00000] in <filename unknown>:0 
  at Criptografia.Main () [0x00000] in <filename unknown>:0