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)
}
希望对您有所帮助:)
我开始学习 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)
}
希望对您有所帮助:)