我在 Xcode 11.0 beta 2 上使用 Apple 的新CryptoKit框架。我想创建一个SymmetricKey,然后获取密钥的原始字节。我想使用这些字节来创建相同的密钥,然后检查以确保密钥相等。根据我在文档中的理解,访问密钥的原始字节的唯一方法是使用withUnsafeBytes(_:)方法。我有一个带有以下代码的游乐场:
import Foundation
import CryptoKit
let key1 = SymmetricKey(size: .bits256)
key1.withUnsafeBytes { body in
let rawKeyBytes = body.load(as: Data.self)
let key2 = SymmetricKey(data: rawKeyBytes)
print("Are they equal? \(key1 == key2)")
}
这个的输出是Are they equal? false
,所以不幸的是键不匹配。假设我可以让这些键匹配,我也不确定如何转换rawKeyBytes
为字符串以便在我的 Playground 输出中查看它。总的来说,我对UnsafeRawBufferPointer或ContiguousBytes不是很熟悉。