0

如果作为构建的一部分,我通过 Ant 的signjar任务对 jar 进行签名,那么它将被视为“签名 jar”。通过执行jar:sign目标,可以在 Maven-land 中完成同样的事情。

诸如 Artifactory 之类的存储库管理器具有校验和的概念,您可以在其中因错误的校验和而使部署失败,您可以重新计算错误/缺失的校验和,并根据校验和状态采取各种其他操作。

我想知道通过诸如Artifactory 的校验和概念之signjar类的方法的 jar 的结果(“签名”)之间的关系是什么。jar:sign

“校验和”是否只是运行这些签名任务/目标所产生的通用术语?还是它们完全不同?

4

2 回答 2

2

校验和是文件内容的数字表示。签名是向文件添加签名的过程。

由于签名过程中文件的大小和内容会发生变化,因此同一个文件签名和未签名的校验和会有所不同。

使用校验和验证文件传输成功的过程对于 Artifactory 来说并不特殊。对于上传它是这样的:

  1. 客户端在上传文件之前计算校验和。
  2. 客户端沿文件上传校验和(通常在带有 .md5 或 sha1 扩展名的单独文本文件中,这是计算校验和的两种方式)。
  3. 上传服务器计算上传文件的校验和后。
  4. 服务器将其校验和与上传的校验和进行比较。如果它们匹配 - 全部为绿色。如果不是 - 这取决于您在问题中提到的设置(上传失败,或者无论如何都通过)。

当您在签名后使用构建工具(Maven 或 Ivy)将 jar 部署到 Artifactory 时,计算的校验和将是正确的(已签名 jar),因此一切都应该按预期工作。

于 2012-02-22T14:29:25.430 回答
0

签名的 jar 保证其内容是由签名人创建的。虽然校验和只是检查文件是否完整。例如,有人可以修改文件并更改校验和以匹配新内容。

于 2012-02-21T19:43:17.823 回答