Codificar y decodificar con el método César mediante Visual Basic .NET

Vamos a realizar una aplicación con Visual Studio para codificar y decodificar una palabra con el método de cifrado César


Como indica Wikipedia, la codificación por el método de Julio César "Es un tipo de cifrado por sustitución en el que una letra en el texto original es reemplazada por otra letra que se encuentra un número fijo de posiciones más adelante en el alfabeto". Ver la referencia completa en la Wikipedia

Con Visual Studio, crearemos una aplicación de formulario para Windows y la asignamos un nombre.
Crearemos una interfaz básica, como por ejemplo:

Dónde:
  • Texto plano. Texto sin codificar.
  • Texto codificado. Texto codificado.
  • Desplazamiento, es el índice de desplazamiento en la tabla ASCII
  • Botón codificar. Codifica el texto plano con el método Julio César dependiendo del indice de desplazamiento. Muestra el resultado en el cuadro de texto Codificado.
  • Botón descodificar. Descodifica el texto codificado de igaul modo que el botón anterior.

Para conocer todos los carácteres ASCII consultaremos la página Tabla ASCII


Código completo:

Public Class frmMain
    Private Sub btnCodificar_Click()
        (sender As System.Object, e As System.EventArgs) 
        Handles btnCodificar.Click
        ' Defino un char que almacenará cada palabra 
        Dim chrLetra As Char
        ' Declaro un contador para recorrer la palabra
        Dim i As Integer
        ' Borramos el contenido de palabras codificadas anteriores
        txtCodificado.Text = ""
        ' Se recorre letra por letra toda la palabra
        For i = 0 To txtPlano.TextLength - 1
            Dim p As Integer
            ' Obtenemos la letra a codificar
            chrLetra = txtPlano.Text.Substring(i, 1)
            ' Convertimos a código ASCII la letra obtenida 
            ' y SUMAMOS el valor de desplazamiento
            p = Asc(txtPlano.Text.Substring(i, 1)) + txtDesplazamiento.Text
            ' Convertimos el nuevo código ASCII a letra
            chrLetra = ChrW(p)
            ' Mostrarmos el resultado en el cuadro de texto
            txtCodificado.Text = txtCodificado.Text & chrLetra
        Next
    End Sub

    Private Sub btnDescodificar_Click()
        (sender As System.Object, e As System.EventArgs) 
        Handles btnDescodificar.Click
        ' Defino un char que almacenará cada palabra 
        Dim chrLetra As Char
        ' Declaro un contador para recorrer la palabra
        Dim i As Integer
        ' Borramos el contenido de palabras codificadas anteriores
        txtPlano.Text = ""
        ' Se recorre letra por letra toda la palabra
        For i = 0 To txtCodificado.TextLength - 1
            Dim p As Integer
            ' Obtenemos la letra a codificar
            chrLetra = txtCodificado.Text.Substring(i, 1)
            ' Convertimos a código ASCII la letra obtenida 
            ' y RESTAMOS el valor de desplazamiento
            p = Asc(txtCodificado.Text.Substring(i, 1)) - txtDesplazamiento.Text
            ' Convertimos el nuevo código ASCII a letra
            chrLetra = ChrW(p)
            ' Mostrarmos el resultado en el cuadro de texto
            txtPlano.Text = txtPlano.Text & chrLetra
        Next
    End Sub
End Class

No hay comentarios:

Publicar un comentario