使用 Xcode 9 和 AES 解密的 CryptoSwift
CryptoSwift with Xcode 9 and AES Decryption
我正在使用 Xcode 9.0 和 CryptoSwift (0.7.2)。我正在尝试扩展 String 以解密 AES128 加密字符串。我已经使用 Pods 成功添加了 CryptoSwift,但出现以下编译错误 - 我做错了什么?
'PKCS7' 无法构造,因为它没有可访问的初始值设定项
这是扩展名:
import Foundation
import CryptoSwift
extension String {
//
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"
}
}
我查看了CryptoSwift
的文档,找到了示例代码:
let decrypted = try AES(key: key, iv: iv, blockMode: .CBC, padding: .pkcs7).decrypt(encrypted)
我认为它使用 .pkcs7
,而不是 PKCS7()
。
我正在使用 Xcode 9.0 和 CryptoSwift (0.7.2)。我正在尝试扩展 String 以解密 AES128 加密字符串。我已经使用 Pods 成功添加了 CryptoSwift,但出现以下编译错误 - 我做错了什么?
'PKCS7' 无法构造,因为它没有可访问的初始值设定项
这是扩展名:
import Foundation
import CryptoSwift
extension String {
//
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"
}
}
我查看了CryptoSwift
的文档,找到了示例代码:
let decrypted = try AES(key: key, iv: iv, blockMode: .CBC, padding: .pkcs7).decrypt(encrypted)
我认为它使用 .pkcs7
,而不是 PKCS7()
。