Академический Документы
Профессиональный Документы
Культура Документы
Utilizado, de ah su nombre, por Julio Csar para comunicarse con sus oficiales, consiste en sustituir cada letra del mensaje por la que est n posiciones ms adelante o atrs en el alfabeto. Si n = 3, la A se sustituira 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. Paso 1: Crea un nuevo proyecto en Netbeans y agreaga un jFrame y aade los siguientes objetos.
*/ 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; } }
Paso 3: para ejecutar el proyecto coloca el siguiente codigo en los jButton (Encriptar y desencriptar)
private void cmdEncriptarActionPerformed(java.awt.event.ActionEvent evt) { String t = texto1.getText(); int k = Integer.parseInt(txtkey.getText()); if (k <=10){texto2.setText(c.Encriptar(t, k));} } private void cmdDesencriptarActionPerformed(java.awt.event.ActionEvent evt) { String t = texto1.getText(); int k = Integer.parseInt(txtkey.getText()); if (k <=10){texto2.setText(c.Desencriptar(t, k));} }
Esta es una variante del algoritmo original del cesar que aparte de tomar en cuenta el abcdario, tambien aade el reconocimiento de numeros y de vocales acentuadas, asi como de algunos simbolos adicionales. Ademas el "Key", que por defecto es 3, puede ser cambiada a cualquier otro valor.
vkhz7shz7jvzhz7xl7whzhu7lu77pkh/// 7klwluklu7kl7sh7mly1h7 7vsuhk7kl77jvyh15u/// /lthps7jhysph?jhs*ovthps/jvtjpkhk7kl7vypnlu7jvjo hihtih$7ivspphzphjpvu7zluptluhs7lu7uh7ylshjp5ut l7pulylzhu7ovtiylzizjv7htpzhk$7jphz$7jvuhjvz7 wyvmlzpvuhslz