En el siguiente tutorial vemos como hacer un sencillo ejemplo del cifrado Vigenere, el cual implemente caracteres del codigo ascii de la “a” a la “z” en minusculas, correspondientes a los valores desde el 97 al 122 en el codigo ascii, incluyendo así las 26 letras minusculas del abecedario.
Videotutorial cifrado vigenere:
public class Vigenere { char[] mensaje; char[] clave; char[] resultado; //resultado cifrado char matriz[][]; public Vigenere(String msg,String clave) { this.mensaje = msg.toCharArray(); char[] claveTemp = clave.toCharArray(); this.clave = new char[mensaje.length]; int cont =0; for(int i=0;i<mensaje.length;i++)//For mete la clave multiples veces en 1 arreglo { this.clave[i]=claveTemp[cont]; cont++; if(cont==claveTemp.length) cont=0; } //la clave ya se guardo en un arreglo de igual tamaño que del mensaje this.matriz = generarMatrizABC();//Generamos matriz del abecedarioç cifrar(); //ciframos el texto } public void cifrar() //Genera cifrado { char[] cifrado = new char[mensaje.length]; int i; int j; for(int cont=0;cont<mensaje.length;cont++) { //Primero calculamos el indice de cada matriz "i" y "j" //el indice "i" correspondera al arreglo del mensaje //el indice "j" correspondera al arreglo de la clave //luego ejecutaremos el calculo para cifrar utilizando "i" y "j" como cordenadas de la matriz i=(int)this.mensaje[cont]-97; //restamos 97 para pasar de codigo ascii a un numero entero j=(int)this.clave[cont]-97; cifrado[cont]=this.matriz[i][j]; } this.resultado = cifrado; //for(int k = 0;k<26;k++) // System.out.println(this.matriz[k]); System.out.println(this.mensaje); System.out.println(this.clave); System.out.println(cifrado); } public String getMensajeCifrado() { String result=""; for(int i=0;i<resultado.length;++i) result=result+this.resultado[i]; return result; } private char[][] generarMatrizABC() { int contador; char abcTemp[] = this.generarAbecedario(); char abc[] = new char[abcTemp.length*2]; for(int c=0;c<26;c++) { abc[c]=abcTemp[c]; abc[c+26]=abcTemp[c]; } char[][] matriz = new char[26][26]; for(int i=0;i<26;i++) { contador=0; for(int j=0;j<26;j++) { matriz[i][j]=abc[contador+i]; contador++; } } return matriz; } private char[] generarAbecedario() { char[] abc = new char[26]; for(int i= 97; i<= 122;i++) { abc[i-97]=(char)i; } return abc; } }
Gracias a tu codigo logre entender como se implementaria este tipo de cifrado en un programa mio. Gracias!!!
hola mundo
grasias bro me cirbio de mucho take a like
Hola muchas gracias por el vídeo, me fue de gran ayuda. Quisiera ver la segunda parte o el código para desencriptar muchas gracias!.
todo bien bestia
podria colocar encriptacion con el metodo curva eliptica
esta chido el video pero podrias hacer una encriptacion en arduino
ola muy interesante tu tutorial solo quisiera saber como podre hacer un programa en java que solo pueda incriptar si me podrias explicar x favor
¡Muchas gracias! Tu ejemplo es fácil de comprender y aplica muy bien ese tipo de cifrado.
Eres muy bueno, gracias por la ayuda que nos brindas a los que nos interesa la programación, sigue así, un ejemplo de programador a seguir
Muy interesante, tengo un poco mas claro el concepto.
Pero necesito un código de encriptación con el metodo hash, no se si me podrías explicar como hacerlo.
Mil gracias