我有两个问题要问;
首先,我需要知道使用“GnuPG”签署java项目的工件的重要性。
我目前的情况是我正在考虑发布我的第一个公共java项目。我正在使用Maven来构建和管理项目,并遇到了“Maven-GPG-Plugin”。插件上的文档非常模糊,并没有描述 为什么 应该使用“GnuPG”签署工件。我没有GnuPG / Maven-GPG的经验,所以我想知道使用这个maven插件有什么好处?
我的第二个问题是如何在Eclipse的java项目中使用这个插件?
在我构建项目时,只需将以下内容添加到pom.xml
我的项目中吗?
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
如果没有,我将如何在Eclipse中使用maven正确签署项目?
谢谢!
答案 0 :(得分:2)
我没有实际使用GnuPG与Maven的经验(我从未发布过Maven插件),因此我会将答案限制在你问题的第一部分。
插件上的文档非常模糊,并没有描述为什么人们应该使用&#34; GnuPG&#34;来签署文物。我没有GnuPG / Maven-GPG的经验,所以我想知道使用这个maven插件有什么好处?
简单的哈希值,只能用于实现意外传输问题,如位翻转。与那些不同,GnuPG发布加密签名, 能够识别传输问题,但另外使您能够验证签名数据的作者。
如果没有加密签名,则无法知道您下载和执行的代码/程序是否实际上是您期望的代码/程序。丢失或未经验证的加密签名会一次又一次地导致后门下载Linux Mint had such an issue。
加密签名并不意味着代码是正确的并且没有(安全)问题,但至少知道您拥有作者发布的相同代码,这大大降低了后门的可能性。