2017-04-07 15 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(..)機能にクラッシュを取得しています:

は、私がメッセージとキーで問題はないことを、クロス確認したオプションの値をアンラップしながら、予想外にnilを発見しました。

助けていただけたら幸いです!

+0

あなたが問題を解決することができましたか? –

+0

@ Mr.Bista:いいえ、問題は解決していません。 –

+0

プリント(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

いいえ。このdosen'tはクラッシュします。 –

+0

これは、「データ」に文字列が含まれていないことを意味します。 'print(response.objectForKey(" data "))'の出力は何ですか? –

+0

あなたはそれを解決できましたか? –

関連する問題