Pregunta

Estoy desarrollando una aplicación de escritorio basado en Java. Hay algunos datos generados a partir del modelo de objetos de aplicación que necesito para persistir (preferiblemente a un archivo). También hay un requisito para proteger el archivo PERSISTED para que otros no pueden obtener los detalles del modelo de objeto de los datos. ¿Cuál es la mejor estrategia para hacer esto? Yo estaba en la impresión de que estos requisitos son muy comunes para las aplicaciones de escritorio. Sin embargo, no he podido encontrado información muy útil sobre el mismo. Cualquier sugerencia apreciada.

¿Fue útil?

Solución

Su pregunta tiene dos partes. Primero: ¿Cómo conservar los datos? Segunda:? Cómo protegerlos

Hay un montón de maneras de cómo persisten datos. Desde simples XML, la serialización de Java para propio formato de datos. No hay manera de cómo evitar que los datos solapas de ingeniería con sólo "texto sin formato". Usted sólo puede hacer más difícil, pero no imposible. Para que sea completamente imposible que necesita para utilizar el cifrado fuerte y aquí viene un problema. Cómo cifrar los datos y no revelan token seguro. Si está distribuyendo token seguro con su solicitud es sólo una cuestión de tiempo para encontrarla y problema está resuelto. Así que entrar en un token de seguridad durante la instalación no es una opción. Si el usuario tiene que autentificarse de usar que le ayudará, pero es el mismo problema. La siguiente opción es utilizar el algoritmo biyección protegida personalizado para ocultar los datos. Y la última opción es no hacer nada sólo sigue el formato de datos privados y no los publica y ofuscar su aplicación para prevenir de la ingeniería inversa.

En el mejor valor proviene de ofuscación sencilla de los datos (XOR primenumber) con el formato de datos personalizado y aplicación ofuscado.

Otros consejos

Si no es necesario modificar este archivo se puede serializar el gráfico de objetos en un archivo. El contenido es binario y que sólo podían ser leídos usando las clases en las que se escribieron.

También puede usar Java DB (incluido con Java desde 1.5 creo) y una herramienta ORM para que como Hibernate.

Editar

se incluye desde 1,6 http://developers.sun.com/javadb/

xstream funciona si usted quiere hacer sencilla la lectura y la escritura XML en un archivo. Xstream le permite tomar cualquier objeto Java y lo escribe y lee desde que presente.

Si realmente necesita la seguridad implícita en su estado de cuenta ( "... proteger el archivo PERSISTED para que otros no pueden obtener los detalles del modelo de objeto de los datos."), Me serializar los datos en la memoria (a java forma serializada, XML, o lo que sea) y luego cifrar que de flujo de bytes en un archivo.

Puedes probar a utilizar una base de datos integrada como Berkeley DB Java Edition ( http://www.oracle.com/database/berkeley-db/je/index.html ). Su API capa persistente directa más probable es que se adapte a sus necesidades. El contenido de bases de datos se sincronizan con los archivos en el disco. De sólo mirar a los archivos directamente, no es fácil de averiguar el modelo de objetos a partir de los datos. He tenido buenas experiencias con él, que es la velocidad del rayo y funciona bien con las aplicaciones de escritorio.

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