alok aggarwal Asked: 2019-08-13 12:55:06 +0800 CST2019-08-13 12:55:06 +0800 CST 2019-08-13 12:55:06 +0800 CST 唯一标识一个 debian 包 772 我在 .deb 包中看到三个校验和: md5sum 沙1 sha256 为什么我们需要 3 个校验和?我们可以使用其中任何一种来唯一标识一个 Debian 软件包吗? package-management debian md5sum checksums sha256 2 个回答 Voted Best Answer user535733 2019-08-13T19:18:37+08:002019-08-13T19:18:37+08:00 是的,您可以使用这些总和中的任何一个来识别包裹。 早在 Debian 早期,在 apt 之前,在 Ubuntu 之前,当 dpkg 作为 apex 包管理器自由漫游地球时,Debian 用户手动下载包,然后手动运行 md5sum 以验证下载是否损坏。md5sum 大约在 20 年前就过时了,因为 apt 的早期迭代开始自动验证下载作为新存储库系统的一部分。 Debian 从 md5sum 转向更安全的 sha1,后来又转向更安全的 sha256,因为该项目的安全专家认为,几十年来越来越强大的计算能力使他们的软件包容易受到复杂的攻击。 但是,如果没有生成较旧的哈希,许多遗留的打包方法(如 debhelper)和基础设施(如 alioth)会引发错误。清理遗留基础设施是一个复杂的问题。这不是代码;是那些建立了依赖于他们最喜欢的工具的工作流程的人,并且真的不想改变。他们是志愿者,因此引人注目的改变很少是现实的选择。所以基础设施清理很慢。然而,请注意,这个社区愿意公开讨论变化,并接受变化可能是缓慢的,这可以说是 Debian 的一大优势。 总有一天 md5 和 sha1 会消失。但是 Debian 还没有完全成熟。 smoe 2019-08-14T07:30:37+08:002019-08-14T07:30:37+08:00 这并不能真正回答这个问题,但仍然可以理解一些额外的上下文,因为“识别一个包”可能意味着很多不同的东西。哈希和告诉您包的内容与描述 (.dsc) 文件匹配。是的,这些哈希中的任何一个都会告诉您该内容是否已更改。 它没有告诉您的是,自从软件包离开开发人员后,内容是否仍然相同。每个人都可以提出一个包并生成一个新的 .dsc 文件 - 具有匹配但不同的哈希值。您想检查包的签名以确保包是它应该是的,匹配散列与否。 您也可以自己签署包并信任自己的签名。这样你就可以修改包。.changes 文件将二进制文件链接到源代码树。然后,这可能有助于“识别”跨不同硬件平台的功能等效包,您(或发行版构建恶魔)为其重建它们。但是跨平台,二进制文件会有不同的哈希值。 对于大多数包管理用例,包名称+版本加上签名的知识就足够了。这也为您提供了哈希无法提供的“比”半订单。
是的,您可以使用这些总和中的任何一个来识别包裹。
早在 Debian 早期,在 apt 之前,在 Ubuntu 之前,当 dpkg 作为 apex 包管理器自由漫游地球时,Debian 用户手动下载包,然后手动运行 md5sum 以验证下载是否损坏。md5sum 大约在 20 年前就过时了,因为 apt 的早期迭代开始自动验证下载作为新存储库系统的一部分。
Debian 从 md5sum 转向更安全的 sha1,后来又转向更安全的 sha256,因为该项目的安全专家认为,几十年来越来越强大的计算能力使他们的软件包容易受到复杂的攻击。
但是,如果没有生成较旧的哈希,许多遗留的打包方法(如 debhelper)和基础设施(如 alioth)会引发错误。清理遗留基础设施是一个复杂的问题。这不是代码;是那些建立了依赖于他们最喜欢的工具的工作流程的人,并且真的不想改变。他们是志愿者,因此引人注目的改变很少是现实的选择。所以基础设施清理很慢。然而,请注意,这个社区愿意公开讨论变化,并接受变化可能是缓慢的,这可以说是 Debian 的一大优势。
总有一天 md5 和 sha1 会消失。但是 Debian 还没有完全成熟。
这并不能真正回答这个问题,但仍然可以理解一些额外的上下文,因为“识别一个包”可能意味着很多不同的东西。哈希和告诉您包的内容与描述 (.dsc) 文件匹配。是的,这些哈希中的任何一个都会告诉您该内容是否已更改。
它没有告诉您的是,自从软件包离开开发人员后,内容是否仍然相同。每个人都可以提出一个包并生成一个新的 .dsc 文件 - 具有匹配但不同的哈希值。您想检查包的签名以确保包是它应该是的,匹配散列与否。
您也可以自己签署包并信任自己的签名。这样你就可以修改包。.changes 文件将二进制文件链接到源代码树。然后,这可能有助于“识别”跨不同硬件平台的功能等效包,您(或发行版构建恶魔)为其重建它们。但是跨平台,二进制文件会有不同的哈希值。
对于大多数包管理用例,包名称+版本加上签名的知识就足够了。这也为您提供了哈希无法提供的“比”半订单。