我正在嘗試在我的應(yīng)用程序中進行身份驗證加密,它適用于 kotlin 但不適用于 swift。我們正在嘗試使用“AES/ECB/PKCS5Padding”。在 kotlin 代碼下方獲取密鑰。但是我的快速代碼返回的結(jié)果與 kotlin 不同。private fun getSecretKey(): SecretKey { val messageDigest = MessageDigest.getInstance("SHA-1") val key = messageDigest.digest(SECRET_KEY.toByteArray(Charset.forName("UTF-8"))) .copyOfRange(0, 16) return SecretKeySpec(key, "AES") }我怎樣才能在 Swift 中做到這一點?swift 中 MessageDigest.getInstance 的等價物是什么。
1 回答

慕的地6264312
TA貢獻1817條經(jīng)驗 獲得超6個贊
沒有等效的SecretKeySpec。但是這個 Java 類主要包裝了一個二進制密鑰。下面的代碼只返回二進制密鑰數(shù)據(jù)。
對于斯威夫特 4:
let secretKey = "secret"
let data = Data(secretKey.utf8)
var digest = [UInt8](repeating: 0, count:Int(CC_SHA1_DIGEST_LENGTH))
data.withUnsafeBytes {
_ = CC_SHA1($0, CC_LONG(data.count), &digest)
}
return data
添加回答
舉報
0/150
提交
取消