与zlib不同但相同的结果
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了与zlib不同但相同的结果相关的知识,希望对你有一定的参考价值。
我有重复的检查谁没有工作,因为我的zlib哈希是相同的文件不同。
我从客户端获得了带有AES的加密数据(XML文件)。我解密了数据(使用Cipher)并获得了压缩数据和base64编码的字节数组。
我解码base64,unzlib并得到了我的XML文件。
如果我再次这样做,我从Cipher中得到了一个不同的base64。我解码它,unzlib并获得与下面完全相同的XML。
有了这个问题,我的重复检查不起作用,因为base64值不同,我不明白为什么。
我的base64值大约是3000个字符,只有10-15个最后一个字符是不同的。
实际上这个软件是php的,一切都很好。在JAVA中的新服务器上,我们遇到了这个错误。
所以客户端数据是正确的,JAVA做了我无法解释的事情。
任何的想法 ?
谢谢
您的问题很难解析,但我认为您所说的是,如果您解压缩由PHP压缩的内容然后使用Java重新压缩它,您将获得不同的压缩数据。解压缩该数据时,您将获得原始的未压缩数据。
如果这是正确的,那么没有问题。由于您可能使用不同的版本,因此无法保证不同的压缩机会产生相同的结果,甚至是相同的压缩机,因为您可以使用不同的设置,或者甚至是相同的压缩机具有相同的设置。 “我解码它,unzlib并获得与下面完全相同的XML。”,意味着所有的压缩器和解压缩器都在做它们应该做的事情。无法保证压缩后的压缩将产生完全相同的结果。无损压缩器的唯一保证是压缩然后减压将产生完全相同的结果。
您正在通过“我有重复检查”为您自己创建一个问题。检查压缩数据不会检查重复的未压缩数据。如果要查找重复项,或者如果要检查压缩,传输和解压缩过程的完整性,则需要使用未压缩数据而不是压缩数据。
以上是关于与zlib不同但相同的结果的主要内容,如果未能解决你的问题,请参考以下文章
Core Data fetch 中的谓词返回的结果与数组上的相同谓词不同