AF.request(url, method: .get).responseJSON { response in
switch response.result {
case .success:
if let data = response.data {
do {
let decoder = JSONDecoder()
let decoderResponse = try decoder.decode(ApiResponse.self, from: data)
guard let encryptedPackage = decoderResponse.data?.package else {
print("Error: encryptedPackage is nil or empty")
return
}
print("Key: \(key)")
print("IV: \(iv)")
print("Encrypted package: \(encryptedPackage.decomposedStringWithCompatibilityMapping)")
let decryption = try AES(key: key.bytes, blockMode: CBC(iv: iv.bytes), padding: .noPadding).decrypt(encryptedPackage.bytes)
let decryptedString = String(bytes: decryption, encoding: .isoLatin1)
debugPrint(decryptedString)
let decryptedData = try decryptedString?.data(using: .utf8)
if let unwrappedData = decryptedData{
let decodeResponse = try decoder.decode(ApiResponse.self, from: decryptedData!)
print(decodeResponse)
completion(decodeResponse, nil)
} else {
print("Error: decryptedData is nil")
}
} catch let error {
completion(nil, error)
}
}
case .failure(let error):
completion(nil, error)
}
}
如何在不使用第三方库的情况下在 Swift 中解压解密后的数据?
我正在使用 xcode - 14.2.