Wil*_*ran 11 java android sha1 oauth hmac
使用下面的规范,我需要在Android上创建oauth_signature.我正在寻找一个处理锅炉板代码的库,用于创建通过OAuth访问资源的签名.
构造一个签名"基本字符串",它由三个请求元素的串联组成:
- HTTP请求方法.
- 请求发送到的基本URL.此URL不应包含任何查询参数.在签署对Google服务的调用时,请参阅OAuth规范第9.1.2节,了解相关说明.
- 请求中参数的标准化字符串(不包括oauth_signature参数).这包括请求标头或正文中发送的参数,以及添加到请求URL的查询参数.要规范化字符串,请使用词典字节值排序对参数进行排序.有关规范化此字符串的更多详细信息,请参阅OAuth规范的第9.1.1节.
使用以下序列之一生成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)
你想要编码的文字"秘密"在哪里,上面的"结果"将是你的哈希编码签名.