Algoritmia - algoritmo DES en VB

 
Vista:

algoritmo DES en VB

Publicado por Inma (1 intervención) el 01/03/2005 12:22:58
Hola a tod@s

Me estoy volviendo loca para encontrar una implementación del algoritmo DES en Visual Basic, he encontrado varias en C, C++, C#, y de momento, no veo otra solución que 'traducir' de C a Visual Basic, con lo que me estoy estresando con tanto puntero y tanto bit.. ¿me podeis ayudar?

gracias de antemano

Un saludo. Inma
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Implementación básica del algoritmo DES en Visual Basic

Publicado por Alejandro (307 intervenciones) el 05/03/2024 00:20:56
¡Hola Inma!

Entiendo que la implementación del algoritmo DES (Data Encryption Standard) en Visual Basic puede ser un desafío debido a las diferencias en la sintaxis y el manejo de punteros entre lenguajes como C y Visual Basic.

Aquí tienes un ejemplo simple de implementación del algoritmo DES en Visual Basic. Ten en cuenta que esta implementación es básica y podría no ser adecuada para aplicaciones de seguridad críticas. Además, el uso de DES está desaconsejado en la actualidad debido a su corta longitud de clave y otras vulnerabilidades conocidas.

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
Public Class DES
    Private Sub Permutar(ByVal texto As String, ByRef permutado As String, ByVal tablaPermutacion As Integer())
        permutado = ""
        For Each posicion As Integer In tablaPermutacion
            permutado &= texto(posicion - 1)
        Next
    End Sub
 
    Private Sub DividirTexto(ByVal texto As String, ByRef izquierda As String, ByRef derecha As String, ByVal mitad As Integer)
        izquierda = texto.Substring(0, mitad)
        derecha = texto.Substring(mitad)
    End Sub
 
    Private Sub RotarIzquierda(ByRef bloque As String, ByVal cantidad As Integer)
        bloque = bloque.Substring(cantidad) & bloque.Substring(0, cantidad)
    End Sub
 
    Private Sub GenerarSubclaves(ByVal clave As String, ByRef subclaves() As String)
        ' Implementa la generación de subclaves DES aquí '
        ' Puedes seguir el algoritmo estándar DES para esta tarea '
    End Sub
 
    Private Sub AplicarDES(ByVal bloqueDatos As String, ByVal subclaves() As String, ByVal cifrar As Boolean)
        ' Implementa la aplicación del algoritmo DES aquí '
        ' Puedes seguir el algoritmo estándar DES para esta tarea '
    End Sub
 
    Public Function Cifrar(ByVal mensaje As String, ByVal clave As String) As String
        Dim permutadoClave As String = ""
        Permutar(clave, permutadoClave, TablaPermutacionClave)
 
        Dim subclaves() As String
        GenerarSubclaves(permutadoClave, subclaves)
 
        ' Implementa la lógica para dividir el mensaje en bloques y cifrar cada bloque aquí '
 
        ' Devuelve el mensaje cifrado '
        Return mensajeCifrado
    End Function
 
    Public Function Descifrar(ByVal mensajeCifrado As String, ByVal clave As String) As String
        Dim permutadoClave As String = ""
        Permutar(clave, permutadoClave, TablaPermutacionClave)
 
        Dim subclaves() As String
        GenerarSubclaves(permutadoClave, subclaves)
 
        ' Implementa la lógica para dividir el mensaje cifrado en bloques y descifrar cada bloque aquí '
 
        ' Devuelve el mensaje descifrado '
        Return mensajeDescifrado
    End Function
 
    ' Otras funciones y tablas necesarias para el DES pueden agregarse aquí '
 
    ' Tabla de permutación inicial para la clave '
    Private TablaPermutacionClave() As Integer = {57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4}
End Class

Este código proporciona la estructura básica y algunas funciones para el algoritmo DES en Visual Basic. Debes implementar las funciones faltantes y ajustar según sea necesario para tu caso específico.

Recuerda que la seguridad y eficacia del código dependerán de cómo se implementen las partes faltantes y de cómo manejes los datos confidenciales. ¡Espero que esto te ayude a avanzar en tu proyecto!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar