Xcode 11 Swift 5 CryptoKit 分享 SymmetricKey

9

我开始学习使用CryptoKit进行加密和解密。一切工作正常,但我不能分享生成的对称密钥。

例如:

let key = SymmetricKey(size: .bits256)

好的,我生成了一个对称密钥。现在我想分享这个密钥,但我该如何做呢?
在调试器中,变量key为空?
我检查了加密和解密 - 运行良好 - 输出显示加密和解密后的数据。我如何保存我变量key以供分发?

我找到了一个解决方案:

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

这很好,但如何将变量 savedKey(String类型)保存回变量 key(SymmetricKey类型)中呢?

1个回答

16

您可以通过将键字符串转换为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)
}

希望这可以帮到你 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接