在Java中实现RSA-SHA1签名算法(创建用于OAuth RSA-SHA1签名的私钥)

在Java中实现RSA-SHA1签名算法(创建用于OAuth RSA-SHA1签名的私钥),java,oauth,digital-signature,Java,Oauth,Digital Signature,正如您所知,OAuth可以支持RSA-SHA1签名。我有一个OAuthSignature接口,它具有以下方法 public String sign(String data, String consumerSecret, String tokenSecret) throws GeneralSecurityException; 我成功地实现并测试了HMAC-SHA1签名(OAuth支持)以及明文“签名” 我搜索过谷歌,如果我需要使用RSAsha1withsignature:Sample code:

正如您所知,OAuth可以支持RSA-SHA1签名。我有一个
OAuthSignature
接口,它具有以下方法

public String sign(String data, String consumerSecret, String tokenSecret) throws GeneralSecurityException;
我成功地实现并测试了HMAC-SHA1签名(OAuth支持)以及明文“签名”

我搜索过谷歌,如果我需要使用RSA
sha1withsignature:Sample code:

  /**
   * Signs the data with the given key and the provided algorithm.
   */
  private static byte[] sign(PrivateKey key,
                             String data)
      throws GeneralSecurityException {

    Signature signature = Signature.getInstance("SHA1withRSA");
    signature.initSign(key);
    signature.update(data.getBytes());
    return signature.sign();
  }
现在,我如何获取OAuth密钥(即key=consumerSecret&tokenSecret)并创建一个
PrivateKey
以用于
SHA1withRSA
签名

谢谢


9.3。RSA-SHA1

RSA-SHA1签名方法使用 RSASSA-PKCS1-v1_5签名算法 如[RFC3447](Jonsson,J。 和B.Kaliski,“公钥 密码标准(PKCS)#1:RSA 密码学.规范版本 第8.2节(简称PKCS#1),使用SHA-1作为 EMSA-PKCS1-v1_5的哈希函数。信息技术 假设消费者 在 验证到服务提供商的方式, 以超出范围的方式 符合本规范的要求


我现在使用这个()作为进行RSA-SHA1签名的参考。

OAuthSignature接口是从哪个API来的?有没有可能RSA签名不需要
tokenSecret
参数?

似乎RSA-SHA1不需要消费者密码,您可以在这里参考Jersey实现,类com.sun.Jersey.oauth.signature.RSA_-SHA1。

OAuthSignature
是我自己的接口。您是对的,使用googleexample()似乎不需要令牌密码。