载入BC(可选):
...
Security.addProvider(new BouncyCastleProvider());
...
签名:
public byte[] signData_SHA256withRSA(byte[] data, String p12file, String passwd) throws Exception {
FileInputStream fis = new FileInputStream(p12file);
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(fis, passwd.toCharArray());
fis.close();
String alias = "";
Enumeration<String> aliases = ks.aliases();
while (aliases.hasMoreElements()) {
alias = aliases.nextElement();
break;
}
PrivateKey priKey = (PrivateKey) ks.getKey(alias, passwd.toCharArray());
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(priKey);
signature.update(data);
byte[] signedData = signature.sign();
return signedData;
}
验签:
RSA