我使用Deflater和SHA-1编写了一个备份程序来存储文件和哈希值。我看到Java的Deflater使用了zlib。如果我明确设置了Deflater的级别,那么无论平台和JRE版本如何,我都能期望获得相同的字节序列吗?
如果没有,那我该怎么用?有没有稳定和快速的纯Java实现?
答案 0 :(得分:2)
压缩前执行SHA-1。然后验证压缩和解压缩的正确性。
无法保证今天压缩机产生的内容与明天压缩机产生的相同输入相同。并且应该没有这样的保证,因为这会妨碍压缩的改进。
唯一的保证是压缩 - 解压缩过程是无损的,因此您从解压缩器获得的正是您为压缩器提供的。因此,您需要在压缩器的输入和解压缩器的输出上计算签名。忽略中间压缩流。