有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中的持久文件验证

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

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

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

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


共 (1) 个答案

  1. # 1 楼答案

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

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

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

    myfile.txt=489892945720524750
    otheruserfile.txt=390495940542905490