2017-04-07 42 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

你能解決它嗎? –