TripleDES

¿Has encontrado un error? ¿Tienes la solución? Deja tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por estudiante con únicamente conocimiento básico del lenguaje, no de programación.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Imports System.IO
Imports System.Text
Imports System.Security.Cryptography
 
Friend Class cTripleDES 
    ' define the triple des provider
    Private m_des As New TripleDESCryptoServiceProvider
 
    ' define the string handler    Private m_utf8 As New UTF8Encoding
 
    ' define the local property arrays
    Private m_key() As Byte
    Private m_iv() As Byte 
    Public Sub New(ByVal key() As Byte, ByVal iv() As Byte)
        Me.m_key = key
        Me.m_iv = iv
    End Sub 
    Public Function Encrypt(ByVal input() As Byte) As Byte()
        Return Transform(input, m_des.CreateEncryptor(m_key, m_iv))
    End Function
     Public Function Decrypt(ByVal input() As Byte) As Byte()
        Return Transform(input, m_des.CreateDecryptor(m_key, m_iv))
    End Function
 
    Public Function Encrypt(ByVal text As String) As String        Dim input() As Byte = m_utf8.GetBytes(text)
        Dim output() As Byte = Transform(input, _
                        m_des.CreateEncryptor(m_key, m_iv))
        Return Convert.ToBase64String(output)
    End Function 
    Public Function Decrypt(ByVal text As String) As String
        Dim input() As Byte = Convert.FromBase64String(text)
        Dim output() As Byte = Transform(input, _
                         m_des.CreateDecryptor(m_key, m_iv))        Return m_utf8.GetString(output)
    End Function
 
    Private Function Transform(ByVal input() As Byte, _
        ByVal CryptoTransform As ICryptoTransform) As Byte()        ' create the necessary streams
        Dim memStream As MemoryStream = New MemoryStream
        Dim cryptStream As CryptoStream = New _
            CryptoStream(memStream, CryptoTransform, _
            CryptoStreamMode.Write)        ' transform the bytes as requested
        cryptStream.Write(input, 0, input.Length)
        cryptStream.FlushFinalBlock()
        ' Read the memory stream and convert it back into byte array
        memStream.Position = 0        Dim result(CType(memStream.Length - 1, System.Int32)) As Byte
        memStream.Read(result, 0, CType(result.Length, System.Int32))
        ' close and release the streams
        memStream.Close()
        cryptStream.Close()        ' hand back the encrypted buffer
        Return result
    End Function
 
End Class 
 
'''''''''''''''''''''''''''''''''
'Aquí un ejemplo de como usar la clase cTripleDES en tu codigo
''    ' define the local key and vector byte arrays
'    Private ReadOnly key() As Byte = _
'    {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, _
'    15, 16, 17, 18, 19, 20, 21, 22, 23, 24}
'    Private ReadOnly iv() As Byte = {8, 7, 6, 5, 4, 3, 2, 1}'    
'    ' instantiate the class with the arrays
'    Private des As New cTripleDES(key, iv)
'    
'    ' for the example, define a variable with the encrypted value'    Private ReadOnly encryptedData As String = "++XIiGymvbg="
'    
'    ' now, decrypt the data
'    Private decryptedData As String = des.Decrypt(encryptedData)
'    '    ' the value of decryptedData should be "test",
'    ' but for our example purposes, let's re-encrypt it
'    Private newEncryptedData As String = des.Encrypt(decryptedData)

Punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

  • Si es lenguaje C <code lang="c">Código en C</code>
  • Si es lenguaje Pascal <code lang="pascal">Aquí dentro el código de Pascal</code>.

De esta manera el código coloreas el código.

Deja un comentario

Suscribirse a los comentarios.