Xcode 11 Swift 5 CryptoKit 共享 SymmetricKey

Xcode 11 Swift 5 CryptoKit share SymmetricKey

我开始学习 de-/encrypting CryptoKit。 一切正常,但我无法共享生成的 SymmetricKey。

示例:

let key = SymmetricKey(size: .bits256)

嗯,我生成一个对称密钥。现在我想分享密钥,但我该怎么做呢? 在调试器内部变量 key 是空的? 我检查了加密和解密 - 效果很好 - 输出显示了加密和解密的数据。如何保存我的变量 key 以供分发?

我找到了解决方案:

let savedKey = key.withUnsafeBytes {Data(Array([=13=])).base64EncodedString()}

这很好用,但是如何将变量 savedKey(字符串)保存回变量 key(SymmetricKey)?

您可以通过将密钥字符串转换为 Data 并从中检索密钥来做到这一点

let key = SymmetricKey(size: .bits256)
let savedKey = key.withUnsafeBytes {Data(Array([=10=])).base64EncodedString()}

if let keyData = Data(base64Encoded: savedKey) {
    let retrievedKey = SymmetricKey(data: keyData)
}

希望对您有所帮助:)