- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何创建 tarball 使其 md5 或 sha512 散列具有确定性?
我目前正在通过运行 tar --exclude-vcs --create --verbose --dereference --gzip --file mycode.tgz *
创建源代码文件目录的 tarball >,我想记录它的哈希值,这样我就可以将它用作检测 future 变化的指纹。
但是,我注意到如果我在不更改任何文件的情况下创建重复的压缩包,运行 Python hashlib.sha512(open('mycode.tgz').read()).hexdigest()
在每个存档上返回不同的哈希值。
这是因为 tar 的压缩算法不是确定性的吗?如果是这样,我如何才能有效地归档大量文件,以便我可以计算出一致的哈希值来检测更改?
最佳答案
生成确定性散列的 tar 版本可能是可能的,但大多数需要 tar 散列一致的打包系统并没有这样做,而是使用类似 pristine-tar 的东西。 .不幸的是,pristine-tar 对您的用例没有帮助。
但是,Git 版本控制系统非常擅长为目录树生成一致的哈希值(sha-1 而不是 sha-512)。
git add .
git write-tree
将打印一个一致的散列,除非发生某些变化。将跟踪文件内容和模式更改。
关于python - 如何找到 tarball 的一致散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20413072/
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
每当我尝试使用我的 gitlab ci 构建我的 Angular 应用程序时,我都会收到以下错误: 我也尝试过使用 npm ci,因为那是一种更简洁的方式,但它给出了相同的错误,但也适用于 types
我有一个 .tar 文件,我需要提取它,看起来像这样 tar tvf bla 100 part1/part1 336 part1/part1 754 part1/part1 638 p
我目前正在从事一个从 SourceForge 抓取源代码的项目。我想从代码存储库下载 tarball。 示例链接如下: http://wurfl.cvs.sourceforge.net/viewvc/
作为主要的 Windows 开发人员,也许我在 Linux 社区中缺少一些文化,但这一直让我感到困惑。 下载文件时首先将文件放入.tar 存档,然后压缩。为什么是两步过程? zipping 不能实现文
我有一个文件夹层次结构,其中包含很多 tarball。我需要编写一个脚本,递归地转到每个目录,在相应目录中提取 tarball。 我试过了 find ./ -name "*.tar.gz" -exec
我如何比较 tar原始文件夹的文件(已压缩)与原始文件夹? 首先,我使用创建了存档文件 tar -kzcvf directory_name.zip directory_name 然后我尝试比较使用 t
我正在尝试创建与Go交叉编译的第一个RPM软件包。 这是包含所有必需信息的Makefile: APPNAME?=helloworld VERSION?=v1.0.0 APPANDVER := ${AP
给定包含多个目录的 tarball,如何提取单个特定目录? import tarfile tar = tarfile.open("/path/to/tarfile.tar.gz") tar.lis
我有一个包含所有必需压缩包的远程存储库。我需要在本地 Linux 机器上运行一个命令来获取这个远程 tarball 并在本地解压。 我知道如何在远程机器上提取本地 tarball,但是在这里,我如何使
关闭。 这个问题不符合 Stack Overflow guidelines 。它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭11 年前。 Improve th
如何创建 tarball 使其 md5 或 sha512 散列具有确定性? 我目前正在通过运行 tar --exclude-vcs --create --verbose --dereference -
是否有 arangoDB 的 tarball 分布,可以在 centos 7 上使用? 我可以使用 github 3.1 tarball 发行版吗?作为一个装置? 感谢任何回复,谢谢 最佳答案 是的,
全部, 这可能是一个常见问题解答,但我无法通过搜索找到它。也就是说,我有点想做“反向” tar 管道。通常,tar 管道用于在单个 nice 命令中将本地文件夹作为 tar 球发送到远程位置: tar
我知道 tar tf singletarball.tar.gz | grep myfile.c 将适用于单个文件。我试过了 ls *.gz | tar tf | grep myfile.c" 但这会
所以我有一个 tarball 目录。即/home/username/dir_w_tarballs。在其中一个压缩包中,有一个曾经在这里工作的工程师的许可证 key 。我如何在目录中的每个 tarbal
我目前正在尝试从使用专有二进制安装程序的 tarball 创建 RPM,以将一堆文件转储到文件系统中。此安装程序不 让我指定文件的位置(因此我不能将它们转储到构建文件夹中)。我想知道可靠地打包文件的最
我在运行 npm install material-design-icons@3.0.1 时遇到此错误: tarball data for material-design-icons@3.0.1 (s
我有一个为一组 linux 发行版创建 rpm 的构建过程。 这个创作花了很多时间,为此我正在优化它。我研究了 rpmbuild 并意识到 rpmbuild 需要一个 tarball 并提取它以开始构
我是一名优秀的程序员,十分优秀!