這是我的代碼:歧義使用的 'arrayOfBytes()'
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上的錯誤perisist。
我註釋了Xcdoe 7.3中的PusherSwift框架,它工作。
我不確定它是錯誤還是我複製錯誤的東西。
這意味着該名稱的多個函數具有類似的簽名。您需要以某種方式區分2個(或更多)。嘗試找到其他版本並將其放在名稱空間前綴後面。 – Carcigenicate
最好避免使用CryptoSwift,其中比基於Common Crypto的實現慢500到1000倍。 Apple的Common Crypto已通過FIPS認證,並且經過充分審查,使用CryptoSwift正在考慮正確性和安全性。如果您需要更多的安全使用[RNCryptor](https://github.com/RNCryptor),可以在多種平臺上使用多種語言。它是安全的,經過充分審查並在當前的開發/維護之下。它提供了諸如隨機iv,消息認證,密鑰擴展和版本控制等所有細節以實現強大的安全性。 – zaph