__ Indice __
¿Qué es una derivada?
Proceso del cifrado
Código
Github
__ ¿Qué es una derivada? __
La Derivada es un elemento utilizado en la matemática
para calcular respuestas de una función a la que se le están alterando
sus valores iniciales. La derivada de una función esta representada
gráficamente como una línea recta superpuesta sobre cualquier curva
(función), el valor de esta pendiente respecto al eje sobre el cual
esta siendo estudiada la función recibe el nombre de Derivada.
Formula básica de una derivada xn - n xn-1
Formula básica de una derivada xn - n xn-1
__ Proceso del cifrado __
Bien, el proceso que vamos a utilizar es bastante simple, vamos a utilizar la formula más básica de una derivada para crear nuestro cifrado, si bien, existen formulas mucho más complejas, para iniciar no las necesitamos.
Lo que vamos a hacer, es que a cada letra de una palabra la vamos a pasar a su valor en ASCII, con eso ta podremos hacer nuestro cifrado.
Ejemplo: Hola
Bastante sencillo ¿no?
Lo que vamos a hacer, es que a cada letra de una palabra la vamos a pasar a su valor en ASCII, con eso ta podremos hacer nuestro cifrado.
Ejemplo: Hola
Carácter ASCII
H 72
o 111
l 108
a 97
Si aplicamos nuestra formula para H sería x72 - 72 x72-1 = 72 x71 y para nuestra cadena completa el resultado sería el siguiente:
72 x71 111 x110 108 x107 97x96
Bastante sencillo ¿no?
__ Código __
Esta vez, haremos el ejemplo con el hermoso lenguaje de programación JavaCreamos nuestro proyecto CifradoDerivada
Agregamos a nuestro proyecto un JFrame con el nombre Principal
No me voy a poner a explicar todo el diseño, para eso hay cursos en Youtube. El diseño nos debería de quedar algo parecido a esto
En el botón de cifrar pondremos el siguiente código
String texto = txtTexto.getText(); Vamos a crear una variable de tipo String, donde guardaremos el texto que el usuario haya puesto en el JTextField al que hemos llamado txtTexto
cifrarTexto cifrar = new cifrarTexto(); Llamamos a nuestra clase cifrarTexto, aun no la hemos creado así que te dará error, pero es normal
String resultado = cifrar.cifrar(texto); Llamamos al método cifrar de nuestra clase (Que aun no hemos creado) y le mandamos el texto que el usuario ha ingresado
txtAreaResult.setText(resultado); Al fianl mandamos el resultado del cifrado al txtArea
Hacemos exactamente lo mismo en nuestro botón descifrar, solamente que llamamos a nuestro método descifrar y le mandamos el texto
Ahora si hay que crear nuestra clase cifrarTexto e importamos la librería StringTokenizer que nos ayudará a separar un String por cada carácter especifico que le mandemos
Vamos a crear nuestro método cifrar, donde pedimos un texto.
char[] cadenaTexto = texto.toCharArray(); Separamos el texto del usuario en un arreglo de tipo char
int asciiValue; esta variable guardará el valor en código ASCII de cada carácter de la palabra
String resultado = ""; Guardará cada letra cifrada, generando nuestra palabra "secreta"
El ciclo for va a recorrer cada indice del arreglo cadenaTexto
asciiValue = (int)cadenaTexto[i]; Convertimos la letra a su equivalente en ASCII
resultado += asciiValue + "X^" + (asciiVale -1) + " "; Generamos nuestro cifrado respecto a la formula y lo guardamos en la variable result
return resultado; Retornamos el valor completo de la variable resultado
Ya para terminar con nuestra clase, vamos a crear el método descifrar
StringTokenizer tokens = new StringTokenizer(texto, " "); Creamos nuestra variable de tipo StringTokenizer, que nos ayudará a separa nuestro cifrado por cada espacio que haya.
StringTokenizer letra; Otra variable del mismo tipo, que una vez teniendo la siguiente notación 65X^64 nos ayudará a separar los números por cada X^ que exista
String resulta; Aquí guardaremos ya toda nuestra palabra descifrada
int n; Cuando convirtamos el texto en números, lo guardaremos aquí para poder utilizarlos.
while(tokens.hasMoreTokens()) Ciclo while que se va a repetir hasta que ya no quede ningún token del tipo 65X^64
letra = new StringTokenizer(tokens.nextToken(),"X^"); A nuestro variable letra le pasamos cada token y lo vamos a separa por cada "X^" que encuentre en el texto, esto para dejar a los números por si solos.
n = Integer.parseInt(letra.nextToken()); Convertimos a los números de tipo String que teniamos en la variable letra y los pasamos a tipo entero
resultado += (char)n; Pasamos ese número a su equivalente carácter del alfabeto y lo guardamos en nuestra variable resultado
return resultado; Ya por último retornamos el valor de la variable resultado.
Ya para terminar y que nuestro código funcione, a nuestra función main de la primera clase que creamos en el proyecto, le decimos que nuestro JFrame Principal sea visible al ejecutar el programa.
Y listo !! Vamos a realizar el ejemplo con nuestra palabra clásica R3gularWeb
El resultado que tenemos del cifrado es el siguiente:
Comentarios
Publicar un comentario