Ruby Zlib压缩为相同的输入提供了不同的输出

问题描述 投票:0回答:1

我有这个用于压缩字符串的红宝石方法-

    def compress_data(data)
        output = StringIO.new
        gz = Zlib::GzipWriter.new(output)
        gz.write(data)
        gz.close

        compressed_data = output.string
        compressed_data
    end

当我使用相同的输入调用此方法时,在不同的时间获得不同的输出。我试图获取压缩输出的字节数组并进行比较。当我运行以下命令时,输出为Different->

input = "hello world"

output1 = (compress_data input).bytes.to_a
sleep 1
output2 = (compress_data input).bytes.to_a
if output1 == output2
    puts 'Same'
else
    puts 'Different'
end

当我取消睡眠时,输出为Same。压缩算法与当前时间有关吗?

我有这个用于压缩字符串的红宝石方法-def compress_data(data)output = StringIO.new gz = Zlib :: GzipWriter.new(output)gz.write(data)gz.close ...

ruby compression gzip zlib
1个回答
0
投票
选项1-固定的mtime:
© www.soinside.com 2019 - 2024. All rights reserved.