gpt4 book ai didi

android - iOS 中的 SHA 加密

转载 作者:行者123 更新时间:2023-11-30 10:29:55 24 4
gpt4 key购买 nike

我在 Android 上有以下代码:

val digest = MessageDigest.getInstance("SHA-512")
digest.update("secretotpkey".toByteArray())

val sb = StringBuilder()
val bytes = digest.digest(value.toByteArray())
bytes.forEach {
sb.append(((it and 0xF) + 0x100).toString(16).substring(1))
}

val encryptedValue = sb.toString()
makeLog("Encrypted value is $encryptedValue")
return encryptedValue

我正在尝试使用 CryptoSwift 将其转换为 iOS。然而我得到了不同的结果。有什么解决办法吗?

var digest = Digest.sha512("secretotpkey".bytes)
print(digest)
let bytes = "54181474".bytes
print(bytes)
digest.append(contentsOf: bytes)
var blah = String()
for item in digest {
let a = Int(item & 0xF) + Int(0x100)
let b = (String(format:"%02X", a)).substring(range: NSRange(location: 1, length: 2))
print(b)
blah.append(b)
}

最佳答案

两个编码问题:

  1. 将键转换为字节时,您没有指示字符集(键首先应由字节组成,字符串不是键)。
  2. 对于 Kotlin 或 Swift,您的十六进制编码显然不正确;请使用预制的库调用,或者在 StackOverflow 上查找正确的代码。

这应该可以解决这个问题,因为除了调用标准化算法(否则为 SHA-512)之外什么也没有。

关于android - iOS 中的 SHA 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59355364/

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