gpt4 book ai didi

java - 我想使用 java 安装在浏览器上的证书来签名数据

转载 作者:行者123 更新时间:2023-12-01 06:22:59 26 4
gpt4 key购买 nike

我知道如何使用系统(机器)上存在的证书对数据进行签名,但要求是使用浏览器上存在的证书对数据进行签名。下面是代码。如果有人发现我的代码错误,请告诉我,因为我不确定其正确性。
PS-此代码有效。

import java.io.FileInputStream;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
import java.security.cert.X509Certificate;
import java.util.Enumeration;

public class class123 {
public static void main(String[] args) {
String input = "shubham";
byte[] signature = createSignature(input.getBytes());
System.out.println(createSignature(input.getBytes()));
verifySignature(input.getBytes(), signature);
}

private static byte[] createSignature(byte[] file) {
byte[] signature = null;
String Password="abc";
try {
java.security.KeyStore keyStoreFile = java.security.KeyStore.getInstance("PKCS12");
keyStoreFile.load(new FileInputStream("D:\\1.p12"), Password.toCharArray()); //address of certificate (pfx file) and corresponding password.
Enumeration<String> aliases = keyStoreFile.aliases();
String alias = aliases.nextElement();
PrivateKey privateKey = (PrivateKey) keyStoreFile.getKey(alias, Password.toCharArray());

Signature dsa = Signature.getInstance("SHA1withRSA");
dsa.initSign(privateKey);
dsa.update(file, 0, file.length);
signature = dsa.sign();

} catch (Exception e) {

e.printStackTrace();
}
return signature;

}

private static void verifySignature(byte[] file, byte[] sign) {
String Password="abc";
try {
java.security.KeyStore keyStoreFile = java.security.KeyStore.getInstance("PKCS12");
keyStoreFile.load(new FileInputStream("D:\\1.p12"), Password.toCharArray());
Enumeration<String> aliases = keyStoreFile.aliases();
String alias = aliases.nextElement();
Signature dsa = Signature.getInstance("SHA1withRSA");
dsa.initVerify(((X509Certificate) keyStoreFile.getCertificate(alias)).getPublicKey());
dsa.update(file);
boolean ret = dsa.verify(sign);
System.out.println(ret);


} catch (Exception e) {

e.printStackTrace();
}


}

}

最佳答案

没关系,请查看this blog post正如我之前在访问 Microsoft 证书存储进行签名和验证时所写的那样,它可能会对您有所帮助。

关于java - 我想使用 java 安装在浏览器上的证书来签名数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39325694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com