4

我开始学习使用 CryptoKit 进行解密/加密。一切正常,但我无法分享我生成的 SymmetricKey。

例子:

let key = SymmetricKey(size: .bits256)

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

我找到了一个解决方案:

let savedKey = key.withUnsafeBytes {Data(Array($0)).base64EncodedString()}

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

4

1 回答 1

11

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

let key = SymmetricKey(size: .bits256)
let savedKey = key.withUnsafeBytes {Data(Array($0)).base64EncodedString()}

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

希望这可以帮助 :)

于 2020-03-09T12:22:51.637 回答