Upload
christian-salinas
View
107
Download
6
Embed Size (px)
Citation preview
Programación 3
Chat con Encriptación en Java
Edisson SiguaEmily Arteaga Christian Salinas
19/01/2017
Encriptacion en Java
Java abarca muchas áreas, tales como seguridad, incluyendo criptografía, la infraestructura de clave, la autentificación, comunicación segura. Estas áreas están definidas dentro de un conjunto de APIs de java, esto permite a los desarrolladores integrar fácilmente los mecanismo de seguridad en el código de la aplicación.
RC2RC2 es un algoritmo de cifrado por bloques de clave de tamaño variable y es tipo de encriptacion simetrica.
El Algoritmo trabaja con bloques de 64 bits y entre dos o tres veces más rápido que el DES en software. Este algoritmo esta diseñado para reemplazar al DES.
El tamaño de la clave puede ser entre 8 y 128 bits, (entre multiplos de 8 bits, como 8, 16, 32, 64, 128).
La diferencia de este algoritmo con los otros es que aunque usa una calve con bloque de 64 bits, realmente la longitud de la clave puede ser variable, es decir no obliga a que sean exactamente claves de 64 bits, lo cual dificulta su decodificación, como se dijo, la clave puede estar entre 8 y 128 bits
RC2 es un algoritmo de cifrado por bloques de clave de tamaño variable y es tipo de encriptacion simetrica.
El Algoritmo trabaja con bloques de 64 bits y entre dos o tres veces más rápido que el DES en software. Este algoritmo esta diseñado para reemplazar al DES.
El tamaño de la clave puede ser entre 8 y 128 bits, (entre multiplos de 8 bits, como 8, 16, 32, 64, 128).
RC2
SimetricaClave secreta (simétrica).
Utiliza una clave para la encriptación y desencriptación del mensaje. Ambos extremos deben tener la misma clave para cumplir con le proceso.
EncriptaciónLa encriptacion en java se puede realizar mediante la clase Cipher, junto con el método getInstance, de la siguiente manera:
Cipher cipher = Cipher.getInstance(“RC2”);
GetInstance devuelve un Cipher objeto que implementa la transformación que se especifique.
EncriptaciónPara crear una clave se utiliza un new SecretKeySpec(), que ya se encuentra en java.
key = new SecretKeySpec(Arrays.copyOf(valuebytes,keySize),‘‘RC2’’);
EncriptaciónPara crear una clave se utiliza un new SecretKeySpec(), que ya se encuentra en java.
key = new SecretKeySpec(Arrays.copyOf(valuebytes,keySize),‘‘RC2’’);
Se inicializa el cifrado con la clave key.
cipher.init(Cipher.ENCRYPT_MODE , key);
EncriptaciónPara crear una clave se utiliza un new SecretKeySpec(), que ya se encuentra en java.
key = new SecretKeySpec(Arrays.copyOf(valuebytes,keySize),‘‘RC2’’);
Se inicializa el cifrado con la clave key.
cipher.init(Cipher.ENCRYPT_MODE , key);
EncriptaciónPara crear una clave se utiliza un new SecretKeySpec(), que ya se encuentra en java.
key = new SecretKeySpec(Arrays.copyOf(valuebytes,keySize),‘‘RC2’’);
Se inicializa el cifrado con la clave key.
cipher.init(Cipher.ENCRYPT_MODE , key);
Se utiliza la clase BASE64Encoder, el cual es un codificador para manejar datos de byte
DesencriptarPara desencriptar se inicializa nuevamente el proceso con la misma clave.
cipher.init(Cipher.DECRYPT_MODE , key);
DesencriptarPara desencriptar se inicializa nuevamente el proceso con la misma clave.
cipher.init(Cipher.DECRYPT_MODE , key);
Desencripta los datos en una cadena de bytes, para poder mostrarlo.
Byte[] cipherbytes = cipher.doFinal(value);String mensaje = new String(cipherbytes);
Bibliografia
https://itzeelitaa.wordpress.com/2012/11/15/algoritmos-de-encriptacion-simetricos-y-asimetricos/
Docs.oracle.com. (2017). Java Cryptography Architecture Oracle ProvidersDocumentation. [online] Disponible en: http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html
Jc-mouse.net. (2017). Encriptación simétrica en java. [online] Disponible en: http://www.jc-mouse.net/java/encriptacion-simetrica-en-java.