代码之家  ›  专栏  ›  技术社区  ›  PhilBot

带Xcode 9和AES解密的CryptoSwift

  •  2
  • PhilBot  · 技术社区  · 8 年前

    我使用的是Xcode 9.0和CryptoSwift(0.7.2)。我试图扩展字符串以解密AES128加密的字符串。我已经成功地将CryptoSwift添加到POD中,但我遇到了以下编译错误-我做错了什么?

    无法构造“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"
        }
    
    }
    
    1 回复  |  直到 8 年前
        1
  •  7
  •   sCha    8 年前

    我已经退房了 CryptoSwift

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

    我认为它使用 .pkcs7 而不是 PKCS7()