2016-01-20 152 views
0

我正在開發一個iOS應用程序,其中: 我打電話給Java Web服務。AES加密和解密數據

服務發送我下面的數據:

  1. 鹽值(Base64編碼)
  2. Base64編碼的關鍵
  3. 加密數據

現在我需要解碼此鍵和使用它用於解密相同的數據。

與我的問題是,當我嘗試解碼密鑰我得到零 NSString

這裏的是,我一直在努力代碼:

NSData *cipherKeyData = [[NSData alloc] initWithBase64EncodedString:@"W0JAM2IwMDVhYmM=" options:NSUTF8StringEncoding]; 
NSString *strKey = [[NSString alloc] initWithData:cipherKeyData encoding:NSUTF8StringEncoding]; 

因此,我不能夠對數據進行解密。 任何人都可以請幫我解決這個問題。

回答

0

第一個strKey是一個字符串:「[B @ 3b005abc」,我沒有得到nil

鍵一般是數據,cipherKeyData是關鍵。密鑰在Base64中提供的原因是因爲實際密鑰是數據,而不是字符串。不需要進一步轉換爲字符串。 Common Crypto加密功能的關鍵參數是數據,而不是NSString

並非所有的數據都可以轉換爲字符串,有數據字節和UTF- *序列是非法的代碼點。在問題中,數據將轉換爲字符串「[B @ 3b005abc」。