java中的持久文件验证

java中的持久文件验证,java,validation,eclipse-plugin,Java,Validation,Eclipse Plugin,在java应用程序中,我需要用户不要修改由我的应用程序创建的文件,如果它被修改,那么它应该得到验证 我的方法:我在hashmap中获取每个文件的上次修改时间,并在此基础上验证修改后的文件 问题:对于特定会话来说,这很好,如果我想保留这些信息,那么我必须创建另一个文件,其中包含上次修改的信息,用户也可以修改这些信息。现在我不使用任何数据库 因此,请您为我提供一个替代方案,即如何验证文件?我的方法是最优化的吗?使用合适的散列算法对文件内容进行散列。要测试用户是否修改了文件,请再次执行相同的哈希过程(

在java应用程序中,我需要用户不要修改由我的应用程序创建的文件,如果它被修改,那么它应该得到验证

我的方法:我在hashmap中获取每个文件的上次修改时间,并在此基础上验证修改后的文件

问题:对于特定会话来说,这很好,如果我想保留这些信息,那么我必须创建另一个文件,其中包含上次修改的信息,用户也可以修改这些信息。现在我不使用任何数据库


因此,请您为我提供一个替代方案,即如何验证文件?我的方法是最优化的吗?

使用合适的散列算法对文件内容进行散列。要测试用户是否修改了文件,请再次执行相同的哈希过程(在测试时),并将其与原始哈希进行比较。如果哈希值不同,那么用户显然修改了文件。我建议您使用SHA-1作为哈希算法,但其他人可能会使用更好的哈希算法

有关如何从字节数组计算SHA-1哈希的信息,请参见。有关将文件读入字节数组的信息,请参见

为了存储每个文件的散列信息,我建议使用数据库,但不必这样做。您可以使用普通文件,并在该文件中创建用于存储哈希相关信息的格式。您的格式可以是用户的文件名=散列。例如:

myfile.txt=489892945720524750
otheruserfile.txt=390495940542905490


再次,我必须写一个文件,也可以修改user@RTA用户是否应该能够编辑该文件?或者用户是否拥有与您在计算机上相同的权限,因此可以查看所有文件?您始终可以创建受密码保护的文件或其他内容。同样,最好是安装一个包含密码保护的数据库……应用程序将安装在用户的系统上,然后他可以修改我的一些文件,这些文件是我为方便我的应用程序而创建的。java安全性中没有任何类可以帮助实现这一点。