0

这是我的代码:

 func aesEncrypt(key: String, iv: String) throws -> String
{
    let data = self.dataUsingEncoding(NSUTF8StringEncoding)

    let enc = try AES(key: key, iv: iv, blockMode:.CBC).encrypt(data!.arrayOfBytes())
    let encData = NSData(bytes: enc, length: Int(enc.count))
    let base64String: String = encData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0));
    let result = String(base64String)
    return result
}

func aesDecrypt(key: String, iv: String) throws -> String
{
    let data = NSData(base64EncodedString: self, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)
    let dec = try AES(key: key, iv: iv, blockMode:.CBC).decrypt(data!.arrayOfBytes())
    let decData = NSData(bytes: dec, length: Int(dec.count))
    let result = NSString(data: decData, encoding: NSUTF8StringEncoding)
    return String(result!)
}

该行:

data!.arrayOfBytes()

正在产生错误

'arrayOfBytes()' 的模糊使用

. 我检查了类似的问题,但没有任何帮助。

Xcode 7.3 Swift 2.2 和 Xcode 8.0 Swift 2.3 上的错误仍然存​​在。

我在 Xcdoe 7.3 中注释掉了 PusherSwift 框架,它起作用了。

我不确定这是一个错误还是我复制错误的东西。

4

1 回答 1

0

如果 PusherSwift 是pusher-websocket-swift,那么看起来他们只是将 CryptoSwift 直接放入他们的模块中。如果您还直接导入 CryptoSwift,那么它们会发生冲突。这是Pusher的错误。他们不能在不特别注意它不会发生冲突的情况下将另一个库放入自己的库中。

于 2016-10-03T15:17:44.777 回答