【问题标题】:How to verify checksums between Windows and Linux如何验证 Windows 和 Linux 之间的校验和
【发布时间】:2020-05-16 13:52:49
【问题描述】:

我有 Jenkins 构建,它从 Azure DevOps 存储库读取文件并运行一个 .NET dll,根据清单文件中提供的 SHA256 验证该文件的 SHA256。不幸的是,Jenkins 在 Linux 上运行,并在使用导致校验和不匹配的一段 .NET 代码处理文件之前对行尾进行幻像更新,因为清单中的校验和是在 Windows 中计算的。我什至尝试在 notepad++ 中手动更新从 \r\n 到 \n 的行尾,并使用生成的校验和更新清单,但它仍然失败。这里有没有人建议如何避免这种差异?

【问题讨论】:

  • “对行尾进行幻像更新”。找出发生这种情况的原因以查看是否可以预防不是更好吗?如果不能,那么至少更准确地确定正在进行的更改。

标签: .net linux windows sha256


【解决方案1】:

手动更新文件可能不是一个好主意,但您可以尝试应用换行规范化功能。根据您使用的技术,很可能会包含标准化功能。如果是换行/兼容性问题,通常应该可以解决。

【讨论】:

  • 我很感激。问题是更新清单文件的人可能会在 Windows 上工作并且相对非技术性。当我在 Azure DevOps 中有管道并且它们运行 CLI 命令certUtil -hashfile <FileName> SHA256 时,它运行良好。现在我需要一种方法让他们找到预期的校验和,直到文件在处理的后期才会被查看或规范化。
猜你喜欢
  • 2021-08-16
  • 2011-07-20
  • 2013-01-02
  • 2020-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多