Xcode 11 Swift 5 CryptoKit поделиться SymmetricKey - PullRequest
2 голосов
/ 03 марта 2020

Я начинаю изучать де-шифрование с помощью CryptoKit. Все отлично работает, но я не могу поделиться сгенерированным SymmetricKey.

Пример:

let key = SymmetricKey(size: .bits256)

Ну, я генерирую ключ симметри c. Теперь я хочу поделиться ключом, но как я могу это сделать? Внутри отладчика переменная ключ пуста? Я проверяю шифрование и дешифрование - работает хорошо - вывод показывает зашифрованные и расшифрованные данные. Как я могу сохранить свою переменную ключ для распространения?

Я нашел решение:

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

Это прекрасно работает, но как я могу сохранить переменную saveKey (String) обратно в переменную key (SymmetricKey)?

1 Ответ

3 голосов
/ 09 марта 2020

Вы можете сделать это путем преобразования строки ключа в 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)
}

Надеюсь, это поможет:)

...