【问题标题】: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
任何帮助将不胜感激。
【问题讨论】:
标签:
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]