vernam simetrico murcielago hill encriptar datos dato contraseñas como cifrar cifrado algoritmo afin java cryptography

simetrico - cifrar contraseñas en java



Cifrado de datos de 128 bits con Java (6)

Necesito almacenar algunos datos confidenciales cifrándolos con al menos una clave de 128 bits. Investigué en el paquete javax.crypto y encontré que hay ciertos nombres de cifrado, como PBEWithMD5AndDES o PBEWithSHA1AndDESede que proporciona cifrado de hasta 56 bit y 80 bit ( http://en.wikipedia.org/wiki/DESede ).

Remití las publicaciones de otros chicos, pero esas están principalmente usando RSA y, en mi entender, RSA es generalmente adecuado para encriptar los datos de comunicación (con par de claves público-privadas). Mi necesidad es diferente, solo quiero almacenar los datos y recuperarlos descifrándolos. Por lo tanto, no necesito ningún par de claves público-privadas.

Por favor, avíseme si tiene alguna idea al respecto.



Gracias Michael, después de probar muchas cosas en JCE, finalmente me conformé con Bouncycastle.

JCE admite AES para el cifrado y PBE para el cifrado basado en contraseñas, pero no admite la combinación de ambos. Yo quería lo mismo y que encontré en Bouncycastle.

El ejemplo está en: http://forums.sun.com/thread.jspa?messageID=4164916



No soy un experto en criptografía de ninguna manera (así que tome esta sugerencia con un grano de sal), pero he usado Blowfish anteriormente, y creo que puede usarlo para lo que necesita. También hay un algoritmo más nuevo del mismo tipo llamado Twofish .

Aquí hay un sitio web con una implementación de Java , pero tenga cuidado con la licencia (dice gratis para uso no comercial). Puede encontrar ese enlace también desde el sitio web de Bruce Schneier (el creador de ambos algoritmos).


Use el Estándar de cifrado avanzado (AES). Admite longitudes de clave de 128, 192 o 256 bits.

El algoritmo es simple. El sitio web de Sun Java tiene una sección que explica cómo hacer el cifrado AES en Java.

De Wikipedia ...

... el Estándar de cifrado avanzado (AES), también conocido como Rijndael, es un cifrado en bloque adoptado como un estándar de encriptación por el gobierno de EE. UU. Se ha analizado ampliamente y ahora se usa en todo el mundo, como fue el caso con su predecesor, el Estándar de cifrado de datos (DES) ...

Entonces, como regla general, no se supone que uses DES o sus variantes porque se está eliminando.

A partir de ahora, es mejor usar AES. Hay otras opciones como Twofish , Blowfish , etc. Tenga en cuenta que Twofish se puede considerar como una versión avanzada de Blowfish.


Combinar 3 respuestas diferentes da lo que creo que es la respuesta correcta.

Descargue las bibliotecas de encriptación de Bouncycastle, luego debe descargar la "Política de jurisdicción de fuerza ilimitada" de Oracle (los archivos están en la parte inferior de la página de descarga). Asegúrese de leer el archivo Léame sobre cómo instalarlo.

Una vez que haya hecho esto, y utilizando el código de muestra proporcionado con el paquete Bountycastle, podrá encriptar sus datos. Puede ir con una implementación triple de DES, que le dará una clave de 112 bits (a menudo denominada de 128 bits, pero solo 112 de ellos son realmente seguros), o como se dijo anteriormente, puede usar AES. Mi dinero estaría en AES.