【问题标题】:Generate Hash for Twitter OAuth为 Twitter OAuth 生成哈希
【发布时间】:2018-10-15 18:38:41
【问题描述】:

我正在尝试生成一个哈希,如 Twitter 开发者页面所述:https://developer.twitter.com/en/docs/basics/authentication/guides/creating-a-signature.html

signatureBaseString = "POST&https%3A%2F%2Fapi.twitter.com%2F1.1%2Fstatuses%2Fupdate.json&include_entities%3Dtrue%26oauth_consumer_key%3Dxvz1evFS4wEEPTGEFPHBog%26oauth_nonce%3DkYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1318622958%26oauth_token%3D370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb%26oauth_version%3D1.0%26status%3DHello%2520Ladies%2520%252B%2520Gentlemen%252C%2520a%2520signed%2520OAuth%2520request%2521";
signingKey = "kAcSOqF21Fu85e7zjz7ZN2U4ZRhfV3WpwPAoE3Z7kBw&LswwdoUaIvS8ltyTt5jkRh4J50vUPVVHtR2YPi5kE";

Mac mac = Mac.getInstance("HmacSHA1");
mac.init(new SecretKeySpec(Base64.decodeBase64(signingKey), "HmacSHA1"));
String sig = new String(Base64.encodeBase64(mac.doFinal(signatureBaseString.getBytes())));
return URLEncoder.encode(sig, "UTF-8");

但是,我的签名与 Twitter 页面上的签名不同。有什么想法吗?

【问题讨论】:

  • 签名密钥是base64吗?
  • 你是对的!你能把它写成答案吗?

标签: java oauth cryptography twitter-oauth


【解决方案1】:

签名密钥未以 base 64 编码,因此您不得使用 base 64 对其进行解码。

【讨论】:

    猜你喜欢
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    相关资源
    最近更新 更多