algoritmo de encriptamiento Codigo Cesar vb.net
Utilizado, de ahí su nombre, por Julio César para comunicarse con sus oficiales, consiste en sustituir cada letra del mensaje por la que está n posiciones más adelante o atrás en el alfabeto.
Si n = 3, la A se sustituiría por la D, la B por E, la C por la F y así sucesivamente. De este modo, la palabra ABC se transforma en DEF encriptada, siendo n la llave (key) para poder decifrarla.
El proyecto.
1. Crea un nuevo proyecto en vb.net, la interfaz es sencilla y consiste en unos cuantos controles como en la imagen
2. Crea una nueva clase, llamala "Cesar.vb", esta clase estara compuesta por tres funciones, encriptar(), desencriptar() y clean(), esta ultima una funcion privada tiene el trabajo de limpiar el codigo de "retornos de carro" y de "caracteres especiales" que no se encuentren en la tabla predefinida para ello.
El codigo fuente de la clase Cesar.vb
01 Public Class Cesar 02 'almacena todos los caracteres permitidos en el mensaje 03 Private Const tabla = "abcdefghijklmnopqrstuvwxyz 04 0123456789ABCDEFGHIJLKMNOPQRSTUVWXY 05 Z,.-;:_{}[]+*\¿?!¡#$&/() 06 =áéíóúÁÉÍÓÚñÑ " + Chr(13) 07 Private resultado As String 08 Private i As Integer 09 Private pos As Integer 10 11 Function Encriptar(ByVal texto As String, ByVal key As 12 Integer) As String 13 resultado = "" 14 texto = clean(texto) 15 For i = 0 To (texto.Length - 1) 16 'buscar la posicion del caracter 17 pos = tabla.IndexOf(texto.Chars(i)) 18 'realiza el reemplazo de caracteres 19 If (pos + key) < tabla.Length Then 20 resultado = resultado + tabla.Chars(pos + 21 key) 22 Else 23 resultado = resultado + tabla.Chars((pos + 24 key) - tabla.Length) 25 End If 26 Next 27 'reconstruye el mensaje con los retornos de carro 28 resultado = resultado.Replace("{.13}", vbCrLf) 29 Return resultado 30 End Function 31 32 Function Desencriptar(ByVal texto As String, ByVal key 33 As Integer) As String 34 resultado = "" 35 texto = clean(texto) 36 For i = 0 To (texto.Length - 1) 37 pos = tabla.IndexOf(texto.Chars(i)) 38 If ((pos - key) < 0) Then 39 resultado = resultado + tabla.Chars((pos - 40 key) + tabla.Length) 41 Else 42 resultado = resultado + tabla.Chars(pos - 43 key) 44 End If 45 Next 46 resultado = resultado.Replace("{.13}", vbCrLf) 47 Return resultado 48 End Function 49 50 Private Function clean(ByVal t As String) As String 51 ' reemplaza el retorno de carro con un simbolo 52 t = t.Replace(vbCrLf, "{.13}") 53 ' reemplaza los caracteres que no se encuentran en 54 la tabla por un simbolo 55 For i = 0 To (t.Length - 1) 56 pos = tabla.IndexOf(t.Chars(i)) 57 If (pos = -1) Then 58 t = t.Replace(t.Chars(i), "{.d}") 59 End If 60 Next 61 Return t 62 End Function 63 End Class
Resultado
2 comentarios:
buen dia que buen ejemplo solo tengo una duda para que usas en la funciones de encriptar y desencriptar la variable &it o solo it y donde la declaras y de que tipo es por que me marca un error de declaracion de variable
Disculpa ando tambien es esto de encriptacion y desencriptacion, bueno la duda systemhands no se si ya te la quitaste pero eso que preguntaste es un signo en html el cual es "<" menor que... Bueno hasta pronto y buen aporte del la aplicacion me va hacer de gran ayuda...
Publicar un comentario