gpt4 book ai didi

javascript - 如何将 JavaScript HMAC 代码转换为 CryptoSwift 实现?

转载 作者:搜寻专家 更新时间:2023-11-01 07:06:05 25 4
gpt4 key购买 nike

我想使用 CryptoSwift 库将此 JavaScript HMAC 代码转换为 Swift。

var crypto = require("crypto");
var currentDate = Moment.utc().format("YYYYMMDDHH");
var hmac = crypto.createHmac("sha256", "secretTokenKey123");
hmac.update(currentDate);
var code = hmac.digest("hex").toUpperCase();

最好的方法是什么?

这是我试过的,但没有返回正确的代码:

    let formatter = DateFormatter()
formatter.dateFormat = "yyyyMMddHH"
let dateString = formatter.string(from: Date())
let baseString = secretToken + dateString
print(baseString.sha256().uppercased())

我也试过了,但是返回同样的错误代码

    var digest = SHA2(variant: .sha256)
var bytes: Array<UInt8>?
do {
_ = try digest.update(withBytes: secretToken.bytes)
_ = try digest.update(withBytes: dateString.bytes)
bytes = try digest.finish()
} catch {}
if let result = bytes?.toHexString().uppercased() {
print(result)
}

我还尝试直接从 CryptoSwift 使用 HMCA。但是我不知道我需要验证什么消息:

HMAC(key: secretToken.bytes, variant: .sha256).authenticate(???)

最佳答案

我刚刚自己发现了解决方案:

HMAC(key: secretToken.bytes, variant: .sha256).authenticate(dateString.bytes).toHexString().uppercased()

关于javascript - 如何将 JavaScript HMAC 代码转换为 CryptoSwift 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47951935/

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