Тип выражения неоднозначен без дополнительного контекста с AES при использовании расшифровки - PullRequest
0 голосов
/ 05 июля 2018

Тип выражения неоднозначен, без дополнительного контекста с AES при использовании Decryption my xcode version 9.4 и swift version 4.1

extension String {
    func aesDecrypt(key: String, iv: String) -> String {
        let data = Data(base64Encoded: self)!
        do{
            let decrypted = try! AES(key: key, iv: iv, blockMode: .CBC, padding : .pkcs7() ).decrypt([UInt8](data))
            let decryptedData = Data(decrypted)
            return String(bytes: decryptedData.bytes, encoding: .utf8) ?? "Could not decrypt"
        }
        catch {
            print("error in aes")
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Работает, заменив

let decrypted = try! AES(key: key, iv: iv, blockMode: .CBC, padding : .pkcs7() ).decrypt([UInt8](data))

с

let decrypted = try! AES(key: key, blockMode: CBC(iv: iv), padding: .pkcs7).decrypt([UInt8](data))

Но есть и другие изменения, которые нужно сделать так, как вам нужно изменить тип аргумента, как показано ниже:

func aesDecrypt(key: [UInt8], iv: [UInt8]) -> String {

Проверьте ЭТО демонстрационный проект для получения дополнительной информации.

0 голосов
/ 05 июля 2018

Кажется, ты забыл

import CryptoSwift

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...