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