Sei sulla pagina 1di 8

package Clase; import java.util.*; import javax.swing.*; import java.lang.

*; public class Encriptar { String [] letra={"A","B","C","D","E","F","G","H","I","J" ,"K","L","M","N","","O","P","Q","R","S","T","U","V","W","X","Y","Z"," "}; public static void main(String[] args) { Encriptar obj=new Encriptar(); String entrada=JOptionPane.showInputDialog("Introduzca la frase a encriptar"); String msg=obj.CodificaCesar(entrada); JOptionPane.showMessageDialog(null,entrada.toUpperCase()+"\n"+ msg);

} public String CodificaCesar(String a){//metodo que realiza la encriptacion de cesar int tam=a.length();//brinda el tamao de la cadena int code1;//variable int code2; String cade="";//inisializamos la cadena String letras ="";//inisializa for(int i=0;i=0 && code1<=23){//aca no realiza el MOD27 por ser menos a 27 code2=code1+3;//se le suma 3 para encriptar y a la vez devuelve la posicion letras=letra[code2];}//con la posicion devuelve la letra else if(code1>23 && code1<27){ code2=(code1+3)%27;//devuelve la posicion letras=letra[code2];//con la posicion devuelve la letra } cade+=letras;//retorna la cadena aadendo por cda vuelta del for }//fin del for return cade; }

public String DesencriptaCesar(String a){ //se desencripta el texto con el metodo de cesar int tam=a.length(); int code1; int code2; String cade=""; String letras =""; for(int i=0;i2 && code1<27){ code2=(code1-3); letras=letra[code2];}

else if(code1>=0 && code1<=2){ code2=(26+code1)-3; letras=letra[code2]; } cade+=letras; }//fin del for

return cade; } public int Conver(String cad){ int pos = -1; for(int i=0;i<=27;i++){ if(letra[i].compareToIgnoreCase(cad)==0) pos=i; } return pos; } public String SustiCesarSimple(String a){//metodo de encriptacion sustitucin simple int tam=a.length(); int code1; int code2; String cade=""; String letras =""; for(int i=0;i=0 && code1<4){//aca no realiza el MOD27 por ser menos a 27 code2=(code1*7)+3;//se le suma 3 para encriptar y a la vez devuelve la posicion letras=letra[code2];}//con la posicion devuelve la letra else if(code1>=4 && code1<27){ code2=((code1*7)+3)%27;//devuelve la posicion letras=letra[code2];//con la posicion devuelve la letra }//fin del else if cade+=letras; }//fin del for

return cade; }

otrooooooooooooooooooooooooo

#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 128 //prototipo de funciones. void encriptar(char frase[MAX],int numero); void desencriptar(char frase[MAX],int numero); //Procedimiento principal. int main() { //Variables necesarias int x; char cadena[MAX]; //Presentacin printf("Encriptacion/Desencriptacion:\n"); printf(" METODO CESAR:\n"); printf("-----------------------------\n"); printf("introduce una cadena: "); //Un especificador que admite texto: scanf("%128[^\n]", cadena); //Vaca el buffer del teclado while(getchar()!='\n'); //Pedimos el nmero printf("introduce un numero : "); scanf("%d",&x); //Vaca el buffer del teclado while(getchar()!='\n'); //Llamamos a la funcin encriptar encriptar(cadena, x); getchar(); //Llamamos a la funcin desencriptar desencriptar(cadena, x); getchar(); //Salimos return 0; } //Funcin para desencriptar Cifrado Cesar en C void desencriptar(char frase[MAX],int numero) { int i=0; while(frase[i]!='\0') { frase[i]=frase[i]-numero; i++;

} printf("\nLa frase desencriptada es:\n%s\n",frase); } //Funcin para encriptar Cifrado Cesar en C void encriptar(char frase[MAX],int numero) { int i=0; char letra; while(frase[i]!='\0') { frase[i]=frase[i]+numero; i++; } printf("\nLa frase encriptado es:\n%s\n",frase); }

Otro mazzzzz
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 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.

Potrebbero piacerti anche