我需要使用RSA和ISO9796-2方案2填充来签署文本的SHA1哈希值
最初我只使用带有RSA的SHA1这样做:
public static byte[] signer(byte[] data, PrivateKey key) throws Exception {
Signature signer = Signature.getInstance("SHA1WithRSA", "BC");
signer.initSign(key);
signer.update(data);
return signer.sign();
}
我该如何修改这个功能?将“SHA1WithRSA”替换为我需要的另一种方案很容易,但我不知道是否可能。
答案 0 :(得分:2)
我用这段代码解决了这个问题:
public static byte[] signer(byte[] data, PrivateKey key) throws Exception {
Signature signer = Signature.getInstance("SHA1withRSA/ISO9796-2", "BC");
signer.initSign(key);
signer.update(data);
return signer.sign();
}
SHA1withRSA / ISO9796-2 可以解决问题。
我很感谢来自充气城堡邮件列表的大卫的回答。