Ayudanos contestando la siguiente encuesta acerca de Videojuegos!
Ir a la encuesta
>

Encriptación

 

Archivos necesarios:

La encriptación nos permite guardar documentos y datos utilizando una clave para que solamente las personas que conozcan la clave puedan abrir los archivos que creamos. Este trial extiende lo que ya vimos en los trials de archivos de texto y archivos binarios.

El primer archivo contiene la interfaz gráfica que únicamente es el editor de texto que vimos en el trial de archivos de texto con un par de opciones nuevas en el menú de opciones, el segundo archivo es la clase que implementa la encriptación.

Main.java
Main.java

Utils
Utils.java

 

¿Cómo encriptar?

La encriptación puede hacerse de muchas formas. En este trial vamos a manejar una forma muy general que puede ser útil cuando tenemos que ocultar el contenido de los archivos guardados por nuestros programas de una manera rápida y sencilla. Pero antes de poder entender cómo funciona este tipo de encriptación es necesario conocer el operador ^ (Xor) en Java.

El operador ^ es un operador binario que actua directamente sobre los bits que componen un archivo. El operador ^ tiene la propiedad de que si utilizamos la misma llave para encriptar y desencriptar nos devuelve el número encriptado, es decir, si queremos encriptar el número 65 con un Xor utilizando la clave 50 podemos hacerlo de la siguiente manera:

  • 65 Xor 50 = 115
  • 115 Xor 50 = 65

Como podemos observar el número encriptado en la primera parte es 115. Una vez que queremos desencriptar solamente volvemos a utilizar el operador ^ sobre el número encriptado y nos devuelve otra vez 65.

Ahora que ya conocemos el operador ^ sabemos que nos es de gran utilidad al encriptar archivos pero todavía falta ver como implementar todo este conocimiento a Java. Primero hay que recordar de que formas podíamos abrir los archivos, una de las formas era por texto y la otra por binario. En los archivos binarios podemos ver directamente los bytes del archivo utilizando la función readByte() o writeByte() por lo que nos son muy útiles cuando queremos encriptar porque podemos leer un byte y escribirlo encriptado.

Entonces para realizar la encriptación se necesita hacer un método que abra un archivo de manera binaria, lea todos los bytes mediante el método readByte(), modifique cada byte mediante un Xor y por último guarde estos bytes al archivo encriptado mediante la función writeByte(). Para poder desencriptar tenemos que abrir el archivo, después utilizar readByte() para leer los bytes del archivo y aplicarles un Xor con la llave que fueron encriptados para desencriptarlos, una vez desencriptados podemos guardarlos en un archivo desencriptado mediante la función writeByte() o podemos desplegarlos en nuestros programas.

RegresarRegresar

   
Ayudanos contestando la siguiente encuesta acerca de Videojuegos!
Ir a la encuesta