【发布时间】:2019-12-16 11:05:05
【问题描述】:
我在 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)
}
【问题讨论】:
-
SHA-512 是加密哈希,它不是加密。顺便说一句,始终在标签中指明运行时。您可以使用 SO 上的代码按钮取消缩进代码。
标签: android swift kotlin encryption sha