2011-06-07 15 views

Respuesta

0

Si está tratando de encriptar datos privados a su aplicación, y no al usuario, entonces necesita acceder a una clave/token/nonce para desencriptar. A menos que esté haciendo la encriptación de forma remota o usando el Android NDK, sería trivial obtener la clave/token/nonce y desencriptarla. Los Apk no se compilan y pueden desempaquetarse fácilmente y ver la fuente.

+0

Eso no quiere decir que el NDK no sufra problemas similares de desensamblaje, simplemente no es tan trivial en comparación con los archivos dex. –

+0

No sea tan rápido para adivinar lo que el OP intenta hacer. Tal vez la contraseña sea ingresada por el usuario, en cuyo caso ninguno de sus argumentos es válido. – Felix

+0

Cierto, si el usuario hubiera proporcionado más información, lo sabríamos. –

5

¿Qué tan nuevo eres con Java en general? Puede usar todas las clases javax.security y javax.crypto (como Cipher) en Android para proporcionar cifrado/descifrado de datos.

Tenga en cuenta que el usuario puede acceder directamente a los archivos de la tarjeta SD (ya sea montando en una PC y explorando oa través de las aplicaciones File Manager), lo que significa que existe la posibilidad de que, aunque no puedan para leer los datos en el archivo, un usuario teóricamente podría eliminar los directorios que crees allí si así lo eligen ... y eso puede no ser kosher para tu aplicación.

Además, realmente no hay forma de simplemente configurar una carpeta como "encriptada" y tener automáticamente cualquier archivo protegido para usted. Debería crear el directorio que desea usar y luego cifrar/descifrar cada archivo a medida que escribe/lee los datos.

Espero que ayude!

+0

hey este enlace no funciona –

0

Ciertamente puede cifrar y descifrar datos en Android como se explica en las otras respuestas. Pero considera que el "hacer" se vuelve más complicado.

1) Use DES y una clave de 56 bits y no necesita una licencia de exportación en los EE. UU. Utilice AES o TDES con la clave de 128 o 256 bits y es posible que deba comenzar a completar la documentación :)

2) A menos que desee que el usuario ingrese una frase de contraseña exactamente igual al tamaño de la clave que desea sembrar y luego multi hash la frase de contraseña usando say SHA256.

3) Es posible que necesite codificar los datos de cifrado en un juego de caracteres de 64 bits (letras mayúsculas y minúsculas, números, + y /) como texto de cifrado. Esto generalmente toma grupos de tres bytes, los expande a cuatro bytes con = como un panel cuando sea necesario. Simplemente busque en Internet codificadores de decodificación de codificación base64.

4) Es posible que desee agregar un NIVEL DE INDIRECCIÓN en el esquema para que el usuario pueda cambiar la contraseña en una fecha posterior SIN cambiar la clave simétrica del archivo. Así que hay dos encriptaciones, encriptando el archivo con una clave simétrica aleatoria y luego encriptando la clave simétrica aleatoria con la frase de contraseña de los usuarios. UGH.

Cuestiones relacionadas