如何为OAuth 1.0在Java或C#中生成oauth_signature值?

时间:2019-01-31 09:48:29

标签: oauth sha1 signature flickr

全部:

这是我第一次使用OAuth,我需要使用Flickr API。在给出的示例中,它们显示“基本字符串”,后跟28到32个字符的签名。在此页面顶部附近的“签名请求”下:

https://www.flickr.com/services/api/auth.oauth.html

作为示例,它们在“获取请求令牌”下列出的URL粘贴到浏览器的地址框中后,会生成正确的响应代码。这个:

https://www.flickr.com/services/oauth/request_token
?oauth_nonce=95613465
&oauth_timestamp=1305586162
&oauth_consumer_key=653e7a6ecc1d528c516cc8f92cf98611
&oauth_signature_method=HMAC-SHA1
&oauth_version=1.0
&oauth_signature=7w18YS2bONDPL%2FzgyzP5XTr5af4%3D
&oauth_callback=http%3A%2F%2Fwww.example.com

在浏览器中将其作为响应:

oauth_callback_confirmed=true&oauth_token=72157702939465392-776fe14f70421bd4&oauth_token_secret=d66fb595796cdf5a

我不知如何确定如何成功生成“ oauth_signature”。这是我目前所了解的:

  1. 它涉及HMAC-SHA1加密。
  2. 它似乎与UTF-8编码有关,但我不清楚如何处理。
  3. Base64编码也可以在某个地方找到,但我不清楚如何实现。

我试图对各种在线解析器上的“ 7w18”开头的签名进行反向工程,但没有成功。我得到的只是更长的字符串。

即使OAuth主页(https://oauth1.wp-api.org/docs/basics/Signing.html)也承认签署请求是使用该平台最困难的部分之一。我绝对可以肯定地看到了这一点,而且我从关于该特定问题的无数问题中知道,我不是唯一对此感到困惑的人。

我已经成功创建了一个Flickr帐户,该帐户同时具有“ Key”(一个相当长的十六进制字符串)和一个“ Secret”(另一个长度约一半的十六进制字符串)。

我想生成Java和/或C#代码以生成将与上述Flickr示例完全一样的URL。看来,涉及加密的东西才是我绊脚石。

有没有人知道为OAuth生成SHA1签名的最佳方法?谢谢!!!

0 个答案:

没有答案