我并不了解哈希算法。
在Java中,我需要实时计算传入文件的哈希值,然后将该文件转发到远程系统(类似于S3),该系统要求MD2 / MD5 / SHA-X格式的文件哈希值。这个哈希值不是为了安全考虑而计算的,而只是为了一致性检查。
我能够使用Java标准库的DigestInputStream实时计算这个哈希值,但是想知道哪种算法最好,以避免使用DigestInputStream时出现性能问题?
我的一位前同事进行了测试,并告诉我们实时计算哈希值可能比在unix命令行或文件上计算要耗费更多的时间。
关于过早优化的编辑: 我在一家公司工作,旨在帮助其他公司数字化其文档。 这意味着我们有一个批处理程序,处理来自其他公司的文档传输。我们未来的目标是每天处理数百万份文件,实际上,这个批处理程序的执行时间对我们的业务非常敏感。
如果每天处理100万份文件,哈希值优化可以减少3小时的执行时间,这个优化可节省10毫秒。