¿Es posible y vale la pena intentar desarrollar alguna aplicación de servidor usando Android NDK que encriptará datos (o simplemente usará una biblioteca de cifrado Linux incorporada) que se le pasa desde Java normal aplicación basada?Usando Android NDK para el cifrado de datos pasados desde la aplicación normal de Android
Intenté usar la biblioteca de cifrado, pero me llevó casi un minuto encriptar un archivo de 2MB con AES. Y blowfish no está disponible en Cipher hasta Android 2.3 (?). Y dudo que sea mucho más rápido.
Estaba usando blowfish para el cifrado en Symbian y fue mucho más rápido (menos de 5-10 segundos), así que creo que en Android es más lento porque uso la máquina virtual Java y me gustaría probar la aplicación nativa.
¿Alguien lo ha hecho antes?
EDITAR: El cifrado en NDK es mucho más rápido. Hazlo allí. Hay una pregunta similar con la misma respuesta para AES: AES decryption on Android too slow to be usable. Will NDK be faster? Other ideas?
Implementé bastante algoritmos criptográficos en Java y es mucho más lento que C/C++ en este sentido. No conseguí que Skein corriera mucho más rápido que 100 MB/s ejecutándose en Oracle JVM.Si implementa AES, intente obtener un buen bucle desenrollado (por ejemplo, 8 rondas en una iteración) y asegúrese de que su aplicación no realice ninguna copia de memoria innecesaria. –
Estoy tratando de implementar AES en el NDK también. ¿Podrías compartir lo que hiciste? ¿Usó algún otro proveedor para AES en su proyecto NDK, o implementó su propia implementación? –
Estoy usando blowfish, y la implementación fue tomada desde [allí] (http://www.schneier.com/blowfish.html). – shtolik