【问题标题】:Yelp API OAuth - oauth_signatureYelp API OAuth - oauth_signature
【发布时间】:2015-12-10 07:06:37
【问题描述】:

我正在尝试在 Swift iOS 应用程序中使用 Yelp API,但对加密不熟悉。我知道我应该使用 SHA1 加密签名,但在 Swift/Xcode 中找不到很好的资源。

此外,Yelp 文档说我应该将签名值作为“生成的请求签名,使用获得的 oauth_token_secret 签名”传递。我不明白“签名”是什么意思。此处链接到文档:Yelp Authentication

任何帮助将不胜感激。

【问题讨论】:

  • 首先,如果您可以链接到文档,那就太好了。其次,使用您的密钥签名是其他人能够验证您的请求的方式。签名过程与加密过程非常相似,但通常在加密中使用公钥的情况下,您将改为使用私钥。也许看看en.wikipedia.org/wiki/Public-key_cryptography

标签: ios swift oauth sha1 yelp


【解决方案1】:

更新:看看CocoaPods YELP 解决方案,您可以选择使用 CocoaPod、直接嵌入代码或仅使用代码作为示例。

另一种方法是CocoaPods OAuth

SHA1 不是加密,它是一个哈希函数,会为其输入创建一个 20 字节的签名。

这是一个可能有用但可能不符合您的输入和输出数据格式的示例:

func sha1(string string: String) -> [UInt8] {
    var digest = [UInt8](count: Int(CC_SHA1_DIGEST_LENGTH), repeatedValue: 0)
    if let data = string.dataUsingEncoding(NSUTF8StringEncoding) {
        CC_SHA1(data.bytes, CC_LONG(data.length), &digest)
    }
    return digest
}

// 测试:

let digest = sha1(string:"Here is the test string")
print("digest: \(digest)")

输出:

摘要:[143、131、57、51、3、161、81、234、51、191、110、62、187、194、133、148]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多