【问题标题】:CryptoSwift with Xcode 9 and AES DecryptionCryptoSwift 与 Xcode 9 和 AES 解密
【发布时间】:2018-03-05 21:29:50
【问题描述】:

我正在使用 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"
    }

}

【问题讨论】:

标签: ios swift swift3 cocoapods cryptoswift


【解决方案1】:

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

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

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

【讨论】:

  • 非常感谢!这真的很有帮助!
  • 使用未解析的标识符“加密”和类型“填充”没有成员“pkcs7”
  • 我有“let enc = try AES(key: key, iv: iv, blockMode: .CBC, padding: .pkcs7).encrypt(data!.bytes)”,现在出现错误“Expression类型 'AES' 在没有更多上下文的情况下是模棱两可的”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-20
  • 2014-01-05
相关资源
最近更新 更多