由于 SHA1 和 MD5 相同但 SHA256 不同导致“哈希和不匹配”错误

由于 SHA1 和 MD5 相同但 SHA256 不同导致“哈希和不匹配”错误

运行时apt full-upgradeapt update得到了几个与这个差不多相同的日志,其中文件大小、SHA1 和 MD5 相同,但 SHA256 不同:

E: Failed to fetch store:/var/lib/apt/lists/partial/jp.archive.ubuntu.com_ubuntu_dists_focal_main_binary-amd64_Packages.xz  Hash Sum mismatch
   Hashes of expected file:
    - Filesize:5826751 [weak]
    - SHA256:af226b4496cbb524bd4814d102047ae77769836203274dffc91cb543d5da13cc
    - SHA1:aef5c36ce45bd5c3154a1bb03c62b6cfb33e2bc6 [weak]
    - MD5Sum:7ef83228ec207df10acac48fbdd81112 [weak]
   Hashes of received file:
    - SHA256:e2c7fc5a2d86f75f03612fec614dcf84d3d502976558fbe40928c1dd120bb05e
    - SHA1:aef5c36ce45bd5c3154a1bb03c62b6cfb33e2bc6 [weak]
    - MD5Sum:7ef83228ec207df10acac48fbdd81112 [weak]
    - Filesize:5826751 [weak]
   Last modification reported: Thu, 23 Apr 2020 16:40:26 +0000
   Release file created at: Thu, 23 Apr 2020 17:33:17 +0000

而其他的具有相同的 MD5,但不同的 SHA1 和 SHA256:

E: Failed to fetch http://jp.archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-headers-5.4.0-29_5.4.0-29.33_all.deb  Hash Sum mismatch
   Hashes of expected file:
    - SHA256:edde13dcd52c51e2404d37731948d491e6e215b22f599239326809754f8d5633
    - SHA1:3e46354d6aaa92f82d5392a80f6b72c3fcc78a91 [weak]
    - MD5Sum:4ccf38c666c836f29fc3602314de47b9 [weak]
    - Filesize:10936232 [weak]
   Hashes of received file:
    - SHA256:9af606f85850ba3010ac8743f62dca91bbef3e5e60da5a7df62dac53eb5a4fb7
    - SHA1:61c842d896676ac9af0fef9f9f48bc4a3c39cce6 [weak]
    - MD5Sum:4ccf38c666c836f29fc3602314de47b9 [weak]
    - Filesize:10936232 [weak]
   Last modification reported: Thu, 30 Apr 2020 08:23:38 +0000

这个问题类似于这里,我确实尝试了那里(和其他地方)提供的几种解决方案,但它们没有帮助。但是我特别想知道为什么 SHA-1 和 MD5Sum 相同,而只有 SHA256 不同。这是否意味着某个地方存在安全问题?还是我的系统错误地读取了 SHA256?还有其他原因吗?

谢谢

答案1

运行之前尝试一下apt

$ sudo bash
# mkdir /etc/gcrypt
# echo all >> /etc/gcrypt/hwf.deny

因为apt使用了 中的 sha256 方法libgcrypt20,但优化过多。我们可以使用配置文件选择退出这些优化/etc/gcrypt/hwf.deny


info gcrypt第16节说:

/etc/gcrypt/hwf.deny

此文件可用于禁用基于硬件的优化,请参阅硬件功能

info gcrypt第2.7节然后说:

Libgcrypt 使用某些硬件功能。如果不想使用某项功能,可以通过程序禁用它,或使用配置文件全局禁用它。

答案2

如果您使用的是 Windows 和 VirtualBox,请禁用适用于 Linux 和虚拟机平台的 Windows 子系统。当我尝试使用 VirtualBox 6.0.4 安装 lubuntu 20.04 并启用 WSL2 时发生了这种情况。

答案3

解释和解决方案:快速修复

此问题是由 Windows Hypervisor 平台引起的。此问题目前无法解决(据我所知)。

不过,部分修复已经迫在眉睫。我说“部分”是因为它涉及禁用平台(也称为“Hyper-V”),这可能会破坏您安装的其他虚拟化解决方案,因为这是手动启用的。无论如何,以下是如何禁用它并让您的虚拟机再次运行,

  1. 关闭虚拟机。

  2. 按 Windows 徽标键 + X,然后按 A 以管理员身份运行命令提示符 (powershell)。

  3. 键入 bcdedit /set hypervisorlaunchtype off

4.当您看到“操作成功完成”时,重新启动 Windows。重新启动后,启动您的虚拟机并更新/升级。

答案4

我不明白问题的原因,但在我的特定情况下(WSL 上的 Ubuntu,在同时使用 WiFi 和以太网的笔记本电脑上),我可以通过拔掉以太网线来解决哈希和不匹配的问题。别问我为什么,但现在一切都恢复正常了……

相关内容