Paso 1: Crea un nuevo proyecto en Netbeans y agreaga un jFrame y añade los siguientes objetos.
Paso 2: crea una nueva clase cesar.java y añade 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 añade 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.
Pero como aprender es divertido, pero da flojera, para que pruebes este algoritmo te dejo un premio.
Esta linda señorita se llama carlita si quieres saber mas de ella y chatear por msn, te dejo mas datos y su correo aqui abajo:
ávkhz7shz7jvzhz7xél7whzhu7lu7áé7ípkh///
7klwluklu7kl7sh7mély1h7 7ívséuáhk7kl7áé7jvyh15u///
/lthps¿7jhyspáh?jhs*ováthps/jvtjpékhk7kl7vypnlu¿7jvjo
hihtih$7ivspíphzpáéhjpvu7zluáptluáhs¿7lu7éuh7ylshjp5ut
l7puálylzhu¿7ovtiylziézjv¿7htpzáhk$7jpáhz$7jvuáhjávz7
wyvmlzpvuhslz
si te interesa, descifre el codigo, suerte.
14 comentarios:
Hola soy un aficionado a la programacion y realmente me gusta pero no alcanzo a entender esta parte: que es c??????? me refiero a tu codigo.. me podrias explicar porfa
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));}
}
"c" es la INSTANCIA de clase de la clase "cesar.java"
osea
se declara en el JFrame
cesar c = new cesar();
para poder utilizar sus metodos en el JFrame, asi
c.Desencriptar(STRING,INT)
saludos
hola que tal muchas gracias por el codigo pero tengo unas dudas acerca del punto 3 es que no se bien en donde poner dicho codigo que mencionas dices que en los jbuttons pero cuando los introduzco ahi me marca algunos errores te agradeceria mucho si me explicas paso a paso como ponerlos ya que este Codigo lo necesito mucho
De ante mano Gracias
creo saber que error es el que te sale, pero para estar seguros, porque no pegas el tipo de error aqui, y lo chekeamos mejor XD
te mande los errores que me salieron x este medio pero creo k no salio por exceso de texto xD
si tienes algun correo para ponerme en contacto contigo te lo agradeceria k me lo hicieras conocer
Gracias una vez mas
Amigo espero hayas leido mi comentario y ojala pronto me puedas ayudar con mi problema que te habia mencionado porque este codigo me URGE MUCHO gracias
q onda a mi si me corrio gracias por el codigo la prueba esta q el codigo se desencripta con 7 y si salen los datos bye y gracias por el aporte ah y un consejo depuren antes de correr si les marca el error del string "".. pongan un numero menor sin cerrar la ventana y denle encriptar si corre muy bien
hola tengo un problema
para eliminar los saltos de carro estoy programando en java J2ME y el codigo no es compatible en especifico ahi no existe el replceAll solo el replace pero solo funciona con variables tipo char sabes alguna manera de hacerlo similar aqui ya que me parecio muy util tu aplicacion
ola necesito ayuda necesito acer un programa de encriptacion y descencriptacion en java sin usar el diseñador encritando archivos desde una ruta especifica
lo que tu quieres es un programa sin interfaz, es lo mismo solo debes hacer unos pequeños cambios al codigo
waoo estan de poca tus blogs.. Felicidades erez un buenazoOo.
Gracias x tus aportes...
Una inquietud, me salen dos errores programando el botón de cifrar, es este:
Línea 1 = String t = TextoaCifrar.getText();
Línea 2 = int k = Integer.parseInt(txtKey.getText());
línea 3 = if (k <= 230){TextoCifrado.setText(c.Encriptar(t,k));}
Me sale estos Erores:El segundo getText en la linea 2 y la palabra Encriptar en la línea 3:
Una ayuda por favor.
Este codigo lo use para la clase JFrame:
public class Cifrar {
private String ASCIITable = "ABCCHDEFGHIJKLLLMNÑOPQRSTUVWXYZabcchdefghijklllmnñopqrstuvwxyz0123456789!#$&/()=?'¿¡@*`^+´ç¨Ç {}[],;.:-_<>ºª";
public Cifrar(){
}
public String Encriptar (String t, int key){
String texto = LimpiarCadena(t);
String res = "";
for(int i = 0; i < texto.length();i++)
{
int pos = ASCIITable.indexOf(texto.charAt(i));
if ((pos + key) < ASCIITable.length()){
res = res + ASCIITable.charAt(pos+key);
}
else
{
res = res + ASCIITable.charAt((pos+key) - ASCIITable.length());
}
}
return res;
}
private String LimpiarCadena(String t) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
hola problemas con el punto tres me dice que gracias
oyes amigo me degaron la tarea de hacer eso pero no puedo con el codigo que tienes aqui en la paguina pasame tu archivo a mi orreo me ayudarias mucho enviamelo al correo davinson_fifa2014@hotmail.com
Publicar un comentario