1

我需要使用 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”很容易,但我不知道这是否可能。

4

1 回答 1

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可以解决问题。

我很感谢 bouncy castle 邮件列表中的 David 的回答。

于 2012-10-23T10:39:53.387 回答