用于在Android上生成HMAC-SHA1 OAuth签名的库?

Wil*_*ran 11 java android sha1 oauth hmac

使用下面的规范,我需要在Android上创建oauth_signature.我正在寻找一个处理锅炉板代码的库,用于创建通过OAuth访问资源的签名.

  1. 构造一个签名"基本字符串",它由三个请求元素的串联组成:

    • HTTP请求方法.
    • 请求发送到的基本URL.此URL不应包含任何查询参数.在签署对Google服务的调用时,请参阅OAuth规范第9.1.2节,了解相关说明.
    • 请求中参数的标准化字符串(不包括oauth_signature参数).这包括请求标头或正文中发送的参数,以及添加到请求URL的查询参数.要规范化字符串,请使用词典字节值排序对参数进行排序.有关规范化此字符串的更多详细信息,请参阅OAuth规范的第9.1.1节.
  2. 使用以下序列之一生成oauth_signature:

    • 如果您的应用程序已注册且您正在使用HMAC-SHA1,请使用注册期间生成的OAuth"consumer secret"值; 此值显示在您域的注册页面上.

DEz*_*zra 10

在回答威尔的问题,关于克里斯的回答,您可以使用内置在Android中javax.crypto.Mac中生成使用下面的代码(标准的Java JCE提供的API)的HMACSHA1签名:

Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec secret = new SecretKeySpec(key.getBytes(), mac.getAlgorithm());
mac.init(secret);
byte[] digest = mac.doFinal(baseString.getBytes());
byte[] result=Base64.encode(digest, DEFAULT);
Run Code Online (Sandbox Code Playgroud)

你想要编码的文字"秘密"在哪里,上面的"结果"将是你的哈希编码签名.


and*_*ell 0

我已将此库用于 Android OAuth 客户端:http://code.google.com/p/oauth-signpost/