0% encontró este documento útil (0 votos)
8 vistas8 páginas

Encriptación y Desencriptación César en Java

Este documento presenta varios métodos para encriptar y desencriptar texto utilizando el cifrado César y sus variantes. Incluye clases y métodos en Java y C++ que implementan el cifrado César estándar con desplazamiento de letras, así como variantes que realizan operaciones matemáticas más complejas sobre la posición de las letras para encriptar el texto. También proporciona instrucciones paso a paso para utilizar estos métodos en un proyecto de Netbeans.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
8 vistas8 páginas

Encriptación y Desencriptación César en Java

Este documento presenta varios métodos para encriptar y desencriptar texto utilizando el cifrado César y sus variantes. Incluye clases y métodos en Java y C++ que implementan el cifrado César estándar con desplazamiento de letras, así como variantes que realizan operaciones matemáticas más complejas sobre la posición de las letras para encriptar el texto. También proporciona instrucciones paso a paso para utilizar estos métodos en un proyecto de Netbeans.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

package Clase; import [Link].*; import [Link].*; import [Link].

*; 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=[Link]("Introduzca la frase a encriptar"); String msg=[Link](entrada); [Link](null,[Link]()+"\n"+ msg);

} public String CodificaCesar(String a){//metodo que realiza la encriptacion de cesar int tam=[Link]();//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=[Link](); 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=[Link](); 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 < [Link]();i++) { //busca la posicion del caracter en la variable tabla int pos = [Link]([Link](i)); //realiza el reemplazo if ((pos + key) < [Link]()){

res = res + [Link](pos+key); } else { res = res + [Link]((pos+key) - [Link]()); } } return res; } public String Desencriptar(String t, int key){ String texto = LimpiarCadena(t); String res = ""; for(int i = 0; i < [Link]();i++) { int pos = [Link]([Link](i)); if ((pos - key) < 0){ res = res + [Link]((pos-key) + [Link]()); } else { res = res + [Link](pos-key); } } return res; } private String LimpiarCadena(String t){ //transforma el texto a minusculas t = [Link](); //eliminamos todos los retornos de carro t = [Link]("\n", ""); //eliminamos caracteres prohibidos for(int i = 0; i < [Link]();i++) { int pos = [Link]([Link](i)); if (pos == -1){ t = [Link]([Link](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 [Link] y aade el codigo:

/** * @web [Link] * @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 < [Link]();i++) { //busca la posicion del caracter en la variable tabla int pos = [Link]([Link](i)); //realiza el reemplazo if ((pos + key) < [Link]()){ res = res + [Link](pos+key); } else { res = res + [Link]((pos+key) - [Link]()); } } return res; } public String Desencriptar(String t, int key){ String texto = LimpiarCadena(t); String res = ""; for(int i = 0; i < [Link]();i++) { int pos = [Link]([Link](i)); if ((pos - key) < 0){ res = res + [Link]((pos-key) + [Link]()); } else { res = res + [Link](pos-key); } } return res; } private String LimpiarCadena(String t){ //transforma el texto a minusculas t = [Link](); //eliminamos todos los retornos de carro t = [Link]("\n", ""); //eliminamos caracteres prohibidos for(int i = 0; i < [Link]();i++)

{ int pos = [Link]([Link](i)); if (pos == -1){ t = [Link]([Link](i), ' '); } } return t; } } Paso 3: para ejecutar el proyecto coloca el siguiente codigo en los jButton (Encriptar y desencriptar)

private void cmdEncriptarActionPerformed([Link] evt) { String t = [Link](); int k = [Link]([Link]()); if (k <=10){[Link]([Link](t, k));} } private void cmdDesencriptarActionPerformed([Link] evt) { String t = [Link](); int k = [Link]([Link]()); if (k <=10){[Link]([Link](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.

También podría gustarte