在Java中实现RSA-SHA1签名算法(创建用于OAuth 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:
OAuthSignature
接口,它具有以下方法
public String sign(String data, String consumerSecret, String tokenSecret) throws GeneralSecurityException;
我成功地实现并测试了HMAC-SHA1签名(OAuth支持)以及明文“签名”
我搜索过谷歌,如果我需要使用RSAsha1withsignature: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()似乎不需要令牌密码。