使用解密时,表达式类型不明确,没有更多上下文与 AES



使用解密时,表达式的类型是模棱两可的,没有更多上下文与AES一起使用我的xcode版本9.4和swift版本是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")
}
}
}

发现它通过替换来工作

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 {

查看此演示项目以获取更多信息。

看来你忘了

import CryptoSwift

最新更新