2

我正在使用 Xcode 9.0 和 CryptoSwift (0.7.2)。我正在尝试扩展 String 以解密 AES128 加密字符串。我已经使用 Pods 成功添加了 CryptoSwift,但出现以下编译错误 - 我做错了什么?

'PKCS7' 无法构造,因为它没有可访问的初始化程序

在此处输入图像描述

这是扩展名:

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"
    }

}
4

1 回答 1

7

我查看了CryptoSwift的文档,并找到了示例代码:

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

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

于 2017-09-25T02:10:29.247 回答