gpt4 book ai didi

java - 如何使文件的 Java Md5 校验和唯一

转载 作者:行者123 更新时间:2023-12-02 05:05:20 24 4
gpt4 key购买 nike

我使用 Apache DigestUtils 获取文件的 Md5,如下所示:

public static String getMd5(File file) throws Exception
{
FileInputStream fis = null;
String md5 = "";

fis = new FileInputStream(file);
md5 = DigestUtils.md5Hex(fis)
IOUtils.closeQuietly(fis);

return md5;
}

此 Md5 被用作 key 。我正在检查唯一性(因为可能发生冲突),但是,如果它不是唯一的,我如何使其唯一?

提前致谢!

最佳答案

实际上,您无法使哈希函数变得唯一(很明显,因为它将大数据映射到小数据)。对于 MD5,对于合理数量的文件来说,这些冲突不会偶然发生,但是想要破坏程序的人可以使用相同的 MD5 哈希构造文件(例如,参见 http://www.mathstat.dal.ca/~selinger/md5collision/ )。如果您想避免这种情况,我建议您使用被认为更安全的哈希函数,例如 SHA-256。如果您确实必须处理具有冲突的哈希函数,则使用此哈希作为键的数据结构需要处理这种情况的机制(例如二次哈希或使用列表来存储具有相同哈希的项目)。

关于java - 如何使文件的 Java Md5 校验和唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27853898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com