2017-04-07 88 views
0

我正在使用AES128加密。以下是我用过的代码:崩溃:使用Swift 2.1的iOS 10中的AES128加密

. . . 
let encJson : String = response.objectForKey("data") as! String 

let encryptionKey : String = “some key here” 

//Crash on this line 
response = EncryptionAndConversion.sharedInstance.converEncDataToStringWithAES128(encJson, key: encryptionKey) 

print("response : \(response)") 
. . . 

func converEncDataToStringWithAES128(message:String, key myKey:String) -> NSDictionary { 

     let data = NSData(base64EncodedString: message, options: NSDataBase64DecodingOptions(rawValue: 0)) 

     //The value of result comes nil 
     let result = NSString(data: (data?.AES128DecryptedDataWithKey(myKey))!, encoding: NSUTF8StringEncoding) 

     return convertStringToDictionary(result!) 
    } 

可能是什么原因?我越来越崩溃的converEncDataToStringWithAES128(..)功能与原因 致命错误:意外发现零而展开的可选值

我跨证实没有与消息和关键任何问题。

任何帮助,将不胜感激!

+0

是你能解决这个问题? –

+0

@ Mr.Bista:不,问题没有解决。 –

+0

什么是print(response.objectForKey(“data”))的输出? –

回答

1

没有答案,但这是否也崩溃?

let encJson : String = response.objectForKey("data") as! String 

到:

guard let encJson = response.objectForKey("data") as? String { 
    print("data is not a String") 
    return 
} 
+0

没有。这不会崩溃。 –

+0

这意味着“数据”不包含字符串。什么是'print(response.objectForKey(“data”))''输出? –

+0

你能解决它吗? –