Pregunta

Necesito almacenar algunos datos confidenciales mediante el cifrado con al menos 128 bits de la clave.He investigado en javax.crypto paquete y encontró que hay ciertos nombres de Cifrado, como PBEWithMD5AndDES o PBEWithSHA1AndDESede que proporciona cifrado de hasta 56 bits y 80 bits (http://en.wikipedia.org/wiki/DESede).

Me refería a otros chicos los puestos, pero esos son principalmente el uso de RSA y en mi entendimiento RSA es generalmente adecuado para el cifrado de datos de comunicación (privados-públicos par de claves).Mi necesidad es diferente, solo quiero almacenar los datos y recuperar de nuevo por descifrarla.Por lo tanto no se necesita ninguna público-privada pares de claves.

Por favor, hágamelo saber si usted tiene alguna idea acerca de esto.

¿Fue útil?

Solución

Uso El Estándar De Cifrado Avanzado (AES).Es compatible con una longitud de Clave de 128, 192 o 256 bits.

El algoritmo es simple.El Sol de la página de web de Java tiene un sección explicando cómo hacer AES la codificación en Java.

De La Wikipedia...

...la Avanzada Encryption Standard (AES), también conocido como Rijndael, es un cifrado por bloques adoptado como un estándar de cifrado por el de estados UNIDOSgobierno.Se ha analizado la ampliamente utilizado en todo el mundo, como fue el caso con su predecesor, el Cifrado de Datos Standard (DES)...

Así como una regla de oro que no se supone que el uso de DES o sus variantes porque está siendo eliminado.

A partir de ahora, es mejor utilizar AES.Hay otras opciones como Twofish, Blowfish etc también.Tenga en cuenta que Twofish puede ser considerado como una versión avanzada de Blowfish.

Otros consejos

He tenido buen éxito en el pasado con http://www.bouncycastle.org/ (que tiene una versión de C# así).

Usted necesita para descargar e instalar la ilimitada fuerza de la JCE archivo de política para su JDK.Para el JDK 6, es en http://java.sun.com/javase/downloads/index.jsp en la parte inferior.

La combinación de 3 diferentes respuestas da lo que yo creo que es la respuesta correcta.

Descargar bibliotecas de cifrado de Bouncycastle entonces usted necesita para descargar el "Ilimitado Fuerza de la Jurisdicción de la" Política de Oracle (los archivos se encuentran en la parte inferior de la página de descarga).Asegúrese de leer el archivo Readme-archivo sobre cómo instalarlo.

Una vez hecho esto, y utilizando el código de ejemplo proporcionado con el Bountycastle paquete usted debe ser capaz de cifrar los datos.Usted puede ir con un triple DES aplicación, que le dará 112 bits de la clave (a menudo referido como de 128 bits, pero sólo 112 de ellos son realmente seguros), o como se ha indicado anteriormente, usted puede usar AES.Mi dinero estaría en AES.

Yo no soy un cripto experto por cualquier medio (para tomar esta sugerencia con un grano de sal), pero he utilizado Blowfish antes, y creo que la puedes usar para lo que usted necesita.También hay un nuevo algoritmo por el mismo tipo llamado Twofish.

Aquí es un sitio web con una implementación de Java, pero tenga cuidado de la licencia (se dice libre para uso no comercial).Usted puede encontrar que tienen un vínculo de Bruce Schneier sitio web (el creador de ambos algoritmos).

Gracias Michael, después de probar muchas cosas en la JCE, finalmente me decidí por bouncycastle.

JCE soporta AES para el cifrado y la PBE para la contraseña de cifrado basado en, pero no admite la combinación de ambos.Yo quería lo mismo y que he encontrado en bouncycastle.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top