9

两份一模一样的文件,在两台一样的服务器上被压缩,压缩后的文件校验值会一样吗

 2 years ago
source link: https://www.v2ex.com/t/804355
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
两份一模一样的文件,在两台一样的服务器上被压缩,压缩后的文件校验值会一样吗 - V2EX

V2EX  ›  Linux

两份一模一样的文件,在两台一样的服务器上被压缩,压缩后的文件校验值会一样吗

  LxnChan · 14 小时 43 分钟前 · 2759 次点击

如题 假设有两台一模一样的服务器,但是不在一个省,采用同样的参数不同时间压缩一份一模一样的文件,出来的压缩文件校验值会一样吗

21 条回复    2021-09-27 00:52:33 +08:00

oksbsb

oksbsb   14 小时 36 分钟前

不一定,即时是同一个机器也不一定。还要看是什么压缩算法

muzuiget

muzuiget   14 小时 35 分钟前

问题你是在于你如何保证和定义“参数一模一样”。

libook

libook   14 小时 32 分钟前   ❤️ 1

如果真的是完全一致的文件元信息、完全一致的文件内容、完全一致的压缩算法和参数,压出来的文件的校验值理论上应该是一样的。
但实际有很多变数,比如你在把文件从一台服务器上复制到另一台服务器是否确保文件的修改时间一致,哪怕内容一样,修改时间不同也会导致校验值不同。
感觉像个 X-Y 问题,可以说一下这个需求的背景,看是不是需要调整探索的方向。

shoco

shoco   14 小时 26 分钟前

看用什么类型的压缩软件,一般压缩软件会把压缩时间作为参数放入到压缩文件里面, 那么一样的可能性为 0

chengyiqun

chengyiqun   13 小时 50 分钟前

很多时候, 会, rar5 加恢复记录后, 不会.

life4me

life4me   13 小时 18 分钟前

函数一样,参数一样,结果一样

momocraft

momocraft   13 小时 16 分钟前

有 timestamp 的文件格式一定不一样 不要假定一样

WordTian

WordTian   12 小时 27 分钟前

有 timestamp 的,大概率会不一样

LGA1150

LGA1150   12 小时 22 分钟前

参考一下 OpenWrt 的打包命令 https://github.com/openwrt/openwrt/blob/master/include/download.mk

tar --numeric-owner --owner=0 --group=0 --mode=a-s --sort=name --mtime="$TAR_TIMESTAMP" ...

HankLu

HankLu   12 小时 17 分钟前

为什么会有这种问题?

GrayXu

GrayXu   9 小时 26 分钟前

@libook 话说 md5 之类的只是校验文件内容吧?

msg7086

msg7086   9 小时 2 分钟前 via Android

可以一样,只要把其中的不确定因素排除就行。典型的因素包括时间。不含时间信息的压缩可以做到一致。(这算是 reproducible 可重复制作性。)

ch2

ch2   8 小时 58 分钟前

压缩包里会额外加元数据的那种肯定不一样

sadfQED2

sadfQED2   8 小时 27 分钟前 via Android

你先在同一台机器上压缩同一个文件两次,看看是不是一样的

TomChaai

TomChaai   7 小时 33 分钟前

你首先要定义什么叫“一模一样”的文件。时间是否包含在“一模一样”的范围内。
文件系统、数据结构的实现不同,可能会导致不一样的结果,比如文件元数据被当成文件的一部分这种事,是否包括在你的题设内。

liuidetmks

liuidetmks   7 小时 27 分钟前 via iPhone

这是一个 xy 问题,请说出你当前真实需求

wangkun025

wangkun025   7 小时 19 分钟前

我试过。同一台机器上对同一个文件进行 gzip,md5 不一样。

smdbh

smdbh   6 小时 40 分钟前

文件时间这些,是存在文件里的吗??

Trim21

Trim21   6 小时 11 分钟前

以 zip 为例,zip 文件里有每个被压缩文件的修改时间。把这一项写 0 也不影响解压。

rrfeng

rrfeng   6 小时 7 分钟前 via Android

时间什么的都是参数,其实关键是压缩算法。

我可以写个随机压缩算法,只要能解压你管我每次压缩成什么样子呢。

关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   971 人在线   最高记录 5497   ·  

创意工作者们的社区

World is powered by solitude

VERSION: 3.9.8.5 · 16ms · UTC 20:44 · PVG 04:44 · LAX 13:44 · JFK 16:44
♥ Do have faith in what you're doing.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK