如您所知,OAuth可以支持RSA-SHA1簽名。我有一個OAuthSignature
接口,其具有以下的方法在Java中實現RSA-SHA1簽名算法(創建用於OAuth RSA-SHA1簽名的私鑰)
public String sign(String data, String consumerSecret, String tokenSecret) throws GeneralSecurityException;
我成功地實現和測試HMAC-SHA1簽名(其OAuth的支持),以及明文「簽名」。
我已搜查谷歌和我要創建一個私有密鑰,如果我需要使用SHA1withRSA
簽名:示例代碼:
/**
* 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的密鑰(這是關鍵= consumerSecret & tokenSecret)並創建一個PrivateKey
以與SHA1withRSA
簽名一起使用?
感謝
9.3。 RSA-SHA1
的RSA-SHA1簽名方法使用 RSASSA-PKCS1-v1_5中的簽名算法 如[RFC3447](瓊森,J. 和B. Kaliski,「公鑰 加密標準(PKCS定義)#1:RSA 加密;規格版本 2.1,「。)第8.2節(更簡單地稱爲PKCS#1),使用SHA-1作爲EMSA-PKCS1-v1_5的 散列函數。它假定消費者具有 以超出本說明書的範圍 的方式向服務提供商提供其經驗證的 方式的RSA公共密鑰,其中 爲 。
而我現在使用這個(http://code.google.com/apis/gdata/docs/auth/oauth.html)作爲做RSA-SHA1簽名的參考。
'OAuthSignature'是我自己的界面。並且您是正確的,使用Google示例(http://code.google.com/apis/gdata/docs/auth/oauth.html)似乎它不需要令牌祕密。 – 2010-03-30 13:50:39