有人可以解释一下如何使用私钥对字符串或字节数组进行签名吗?请。两个星期我正在努力实现它。 我有代码:
private static byte[] createSignature(byte[] file) {
byte[] signature = null;
try {
java.security.KeyStore keyStoreFile = java.security.KeyStore
.getInstance("PKCS12");
keyStoreFile.load(new FileInputStream("keyStore.pfx"),
"password".toCharArray());
// nuskaitomas privatus raktas iš failo
PrivateKey privateKey = (PrivateKey) keyStoreFile.getKey(
"alais", "password".toCharArray());
Signature dsa = Signature.getInstance(SHA1withRSA);
dsa.initSign(privateKey);
dsa.update(file, 0, file.length);
signature = dsa.sign();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return signature;
}
但这只是一个签名。
答案 0 :(得分:0)
更改退货签名;为此:
byte[] encryptedByteValue = Base64.encodeBase64(signature);
return new String(encryptedByteValue, "UTF-8");
答案 1 :(得分:0)