2017-09-25 230 views
1

我正在使用Xcode 9.0和CryptoSwift(0.7.2)。我試圖擴展字符串來解密AES128加密字符串。我已經成功添加了CryptoSwift與Pods,但我收到以下編譯錯誤 - 我做錯了什麼?使用Xcode 9和AES解密的CryptoSwift

'PKCS7' 無法建造,因爲它沒有可訪問的初始化

enter image description here

這裏是擴展:

import Foundation 
import CryptoSwift 

extension String { 

    // https://stackoverflow.com/questions/27072021/aes-encrypt-and-decrypt 
    func aesDecrypt(key: String, iv: String) throws -> String { 
     let data = Data(base64Encoded: self)! 
     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" 
    } 

} 
+0

請檢查https://github.com/krzyzanowskim/CryptoSwift#swift-versions-support是否使用正確的版本。 –

回答

6

我已經簽出CryptoSwift的文檔,並我找到一個示例代碼:

let decrypted = try AES(key: key, iv: iv, blockMode: .CBC, padding: .pkcs7).decrypt(encrypted) 

我認爲它使用.pkcs7,而不是PKCS7()

+0

非常感謝!這真的很有幫助! – Tommy