Java 以编程方式对JAR进行签名
我想用我的代码而不是密钥库对JAR进行签名——只使用私有用户的密钥(因为我有很多用户和密钥) 我发现了相同的方法,但它使用密钥库,我只想使用Java 以编程方式对JAR进行签名,java,signing,jarsigner,Java,Signing,Jarsigner,我想用我的代码而不是密钥库对JAR进行签名——只使用私有用户的密钥(因为我有很多用户和密钥) 我发现了相同的方法,但它使用密钥库,我只想使用PrivateKey或String来实现。有可能吗?有图书馆吗 添加: 我将尽力澄清这项任务。 例如,我们有一些用户和一些服务。 用户创建一些模块,将其打包为JAR,并使用它自己的私钥对其进行签名,私钥作为字符串存储在一些数据库中 然后他将其发送到服务,该服务知道该用户的公钥(它也存储在数据库中)。服务验证这个JAR 我不想使用密钥库和别名,因为我必须在每个
PrivateKey
或String
来实现。有可能吗?有图书馆吗
添加:
我将尽力澄清这项任务。
例如,我们有一些用户和一些服务。
用户创建一些模块,将其打包为JAR,并使用它自己的私钥对其进行签名,私钥作为字符串存储在一些数据库中
然后他将其发送到服务,该服务知道该用户的公钥(它也存储在数据库中)。服务验证这个JAR
我不想使用密钥库和别名,因为我必须在每个JAR上实例化文件。上传时,我使用pom.xml对JAR进行了签名。如果对您有帮助,我很高兴:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ABC</groupId>
<artifactId>applet</artifactId>
<version>ABC</version>
<packaging>jar</packaging>
<name>applet</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.aaa.bbb</groupId>
<artifactId>keytool-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>genkey</goal>
</goals>
</execution>
</executions>
<configuration>
<keystore>./target/chkey</keystore>
<alias>ch</alias>
<dname>cn=Organization Name, o=Org, l=xyz, st=mm, c=US</dname>
<keypass>pass</keypass>
<storepass>pass</storepass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>sign</id>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<keystore>./target/chkey</keystore>
<alias>ch</alias>
<storepass>pass</storepass>
<keypass>pass</keypass>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>java</groupId>
<artifactId>java-plugin</artifactId>
<version>jre-1.8</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
4.0.0
基础知识
小程序
基础知识
罐子
小程序
http://maven.apache.org
UTF-8
org.aaa.bbb
keytool maven插件
根基
/目标/chkey
中国
cn=组织名称,o=组织,l=xyz,st=mm,c=US
通过
通过
org.apache.maven.plugins
maven jarsigner插件
1.2
签名
签名
/目标/chkey
中国
通过
通过
JAVA
java插件
jre-1.8
假如
目前我正在尝试使用JarSigner
源代码,但运气不佳。我想使用Java解决方案,因为我的系统必须是可移植的。但是GPG可能是合适的,我问的是你的“很多用户和密钥”实际上已经在使用什么。如果你想使用GPG,你可以浏览一下Maven GPG插件的源代码。好的,我会尝试使用它。目前,我正在创建一个体系结构,并讨论技术