Por ejemplo a en ascii es 97 pero con un intervalo de 1 se imprimiría un ascii 98 que es b
//esto formatea el codigo java
public class cesar { private String tabla = "abcdefghijklmnopqrstuvwxyzáéíóú 1234567890@.,;:-+*/$#¿?!¡=()[]{}"; public cesar(){ } public String Encriptar(String t, int key){ String texto = LimpiarCadena(t); //aqui se almacena el resultado String res = ""; for(int i = 0; i < texto.length();i++) { //busca la posicion del caracter en la variable tabla int pos = tabla.indexOf(texto.charAt(i)); //realiza el reemplazo if ((pos + key) < tabla.length()){ res = res + tabla.charAt(pos+key); } else { res = res + tabla.charAt((pos+key) - tabla.length()); } } return res; } public String Desencriptar(String t, int key){ String texto = LimpiarCadena(t); String res = ""; for(int i = 0; i < texto.length();i++) { int pos = tabla.indexOf(texto.charAt(i)); if ((pos - key) < 0){ res = res + tabla.charAt((pos-key) + tabla.length()); } else { res = res + tabla.charAt(pos-key); } } return res; } private String LimpiarCadena(String t){ //transforma el texto a minusculas t = t.toLowerCase(); //eliminamos todos los retornos de carro t = t.replaceAll("\n", ""); //eliminamos caracteres prohibidos for(int i = 0; i < t.length();i++) { int pos = tabla.indexOf(t.charAt(i)); if (pos == -1){ t = t.replace(t.charAt(i), ' '); } } return t; } }Ahora la forma de instanciarlo es asi:
cesar cesar = new cesar(); String cadena_final = cesar.Encriptar(texto_inicial, intervalo); String cadena_inicial= cesar.Desencriptar(cadena_final, intervalo);
No hay comentarios:
Publicar un comentario