Вы находитесь на странице: 1из 4

Encriptamiento Codigo Cesar Algoritmo de encriptamiento en java

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.

Paso 2: crea una nueva clase cesar.java y aade el codigo:


/** * @web http://jc-mouse.blogspot.com/ * @author Mouse

*/ 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

si te interesa, descifre el codigo, suerte.

Вам также может понравиться