最好的方式存储数据之间的程序运行在java?
-
18-09-2019 - |
题
什么是最好的方式存储数据之间的程序运行在Java?我已经知道,你可以用一个文本文件和存储信息的方式,但我在想,如果有一个更好的方式来存储的信息生成的通过程序之间运行的程序。
此外,是否有任何方式这样做,以保持信息安全吗?具体地说,我要保留的最终用户能够进行访问。
解决方案
我想知道是否有任何方式 其它布置一个是信息 通过运行之间的程序genereated 该方案的?
只需使用一个ObjectOutputStream
将其序列化到一个文件和一个ObjectInputStream
取回。
另外是否有任何方式做到这一点,从而 保持信息的安全?从 最终用户能够访问它?
如果该代码的最终用户的系统上运行则没有,有没有办法阻止他们获得的数据 - 它甚至没有值得你花时间试图以某种方式进行编码,因为它很容易附加一个调试和检查程序状态,而它的运行。作为一个二进制格式,Java序列化将阻止非技术用户破译它,这几乎是可以期待的最好。
其他提示
上的文件加密,或本地数据库与密码。
您可以使用 db4o的来存储数据。它是一个对象数据库和支持加密。
您可能会感兴趣的 Quick'n'dirty持久性的Java 。
最好的事情时所使用的初级Java是使用一个ObjectOutputStream或文本文件。一旦你有更多的经验,那么你可以使用数据库。
如何系列化?
它不能被用户阅读和它的相对容易的。
正如其他人说,有办法来序列数据万千。你可以使用一些轻量级的SQLite的类似或只是简单的序列化。只要知道你做任何尝试对数据进行加密可以被打败,特别是在Java代码的情况下,因为它可以轻易逆转。
不过,如果你的用户大部分都没有足够的技术来了解逆向工程Java程序的复杂性弄清楚如何解密你的数据,你应该能够有一些基本的加密方法,如提到什么脱身在另一个答案,是一件好事。只要知道什么随时驻留你无法控制的机器上,有没有办法让最顽固的用户搞清楚如何破解它。
我个人会建议使用SQLite和使用上你把字段中的数据,因此,如果有人是足够聪明,能够连接到本地数据库文件,他们仍然要扭转你的加密算法,以某种方式一些简单的加密。普通用户的99.9%将不与本级调查打扰。
XML作为序列化技术是更有弹性,以在程序中的未来变化,将调整存储不是二进制格式,例如对象序列。然而,这将使由大多数用户来说非常可读和可改变的。
一个非常简单的压缩/解压缩将从在数据的实际内容获取停止几乎所有的用户。周围的电流写流使用GZipInputStream / GZipOutputStream的将做的工作。更详细说明你的防御撬你得到它会影响您的软件的用户就越多。