gpt4 book ai didi

swift - 如何使用 key 在 swift 4 中散列 sha256?

转载 作者:行者123 更新时间:2023-11-28 09:35:27 24 4
gpt4 key购买 nike

我目前正在做一个项目(swift 3/4),我需要散列一个格式如下的 HTTP 请求:

    {"request": {"method": "getMyPeople", 
"params": {"api_key": 00de5089d590e413807343166da22a45,
"user_id": 8 }, "id": "1"}}

我正在尝试使用 key 在 SHA-256 中进行哈希处理,如下所示:

    6b107c7ebebf056e1c45924d0546d35e

我需要什么:

  1. 我需要能够使用 key 对 sha256 进行哈希处理。
  2. 我需要该散列请求是十六进制形式的字符串,以便我向数据库发出请求

我有什么:

  1. 设置我的头桥文件以使用 objective-c 代码
  2. 研究了很多解决方案,但没有一个对我有用

我尝试过的解决方案:我最近的尝试是 Zaph 的帖子(https://stackoverflow.com/a/39249920/8093921)。

我的问题发生在哪里:当我尝试转换

的形式时,我的问题似乎发生了
 hashSHA256: <aabc766b 6b357564 e41f4f91 2d494bcc bfa16924 b574abbd ba9e3e9d a0c8920a>

正如在 Zaph 的帖子中所见,他们将其保留在我需要的十六进制字符串形式的地方。

如果有人需要更多说明,请告诉我。预先感谢您的帮助!

最佳答案

我承认将所有内容放在一起可能会造成混淆,但最终的解决方案非常简单:

extension String {

func hmac(key: String) -> String {
var digest = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH))
CCHmac(CCHmacAlgorithm(kCCHmacAlgSHA256), key, key.count, self, self.count, &digest)
let data = Data(bytes: digest)
return data.map { String(format: "%02hhx", $0) }.joined()
}

}

例子:

let result = "test".hmac(key: "test")

结果:

88cd2108b5347d973cf39cdf9053d7dd42704876d8c9a9bd8e2d168259d3ddf7

关于swift - 如何使用 key 在 swift 4 中散列 sha256?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48406005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com