猿问

Swift 等同于 Java 中的 MessageDigest?

我正在尝试在我的应用程序中进行身份验证加密,它适用于 kotlin 但不适用于 swift。我们正在尝试使用“AES/ECB/PKCS5Padding”。在 kotlin 代码下方获取密钥。但是我的快速代码返回的结果与 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 的等价物是什么。


Smart猫小萌
浏览 232回答 1
1回答

慕的地6264312

没有等效的SecretKeySpec。但是这个 Java 类主要包装了一个二进制密钥。下面的代码只返回二进制密钥数据。对于斯威夫特 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
随时随地看视频慕课网APP

相关分类

Java
我要回答