Signjar& jar:sign vs Artifactory checksum

时间:2012-02-21 19:38:37

标签: java maven ant artifacts jar-signing

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

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

我想知道通过诸如signjarjar:sign之类的方法将罐子的结果(“签名”)与Artifactory的校验和概念之间的关系。

“校验和”只是通过运行这些签名任务/目标产生的内容的通用术语吗?或者他们是完全不同的项目?

2 个答案:

答案 0 :(得分:2)

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

由于签名过程中文件的大小和内容发生了变化,因此同一文件的校验和有问题,而无符号的校验和也会有所不同。

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

  1. 客户端在上传文件之前计算校验和。
  2. 客户端沿文件上传校验和(通常在单独的文本文件中使用.md5或sha1扩展名,这是计算校验和的两种方式)。
  3. 上传服务器计算上传文件的校验和后。
  4. 服务器将其校验和与上载的校验和进行比较。如果他们匹配 - 全部是绿色。如果不是 - 这取决于您在问题中提到的设置(无法上传,或者无论如何都要通过)。
  5. 当你使用构建工具(Maven或Ivy)在签名后将jar文件部署到Artifactory时,计算出的校验和将是正确的(已签名的jar),所以一切都应该按预期工作。

答案 1 :(得分:0)

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