2014-11-24 41 views
0

我創建了一個as.net web api來接收用戶憑證進行身份驗證。在我的iOS應用程序中,我將用戶名和密碼發送到網址。我只想加密密碼。如何使用stringByAppendingFormat傳遞加密的NSString?

如何發送加密密碼,然後我可以在asp.net中解密它?

我的代碼:

NSString *username = Username.text; 
NSString *password = Password.text; 

NSData *dataToEnc = [Password.text dataUsingEncoding:NSUTF8StringEncoding]; 
NSData *encryptedData = [dataToEnc AES256EncryptWithKey:password]; 

NSURL *urlFormat = [NSURL URLWithString:[API_LOGIN stringByAppendingFormat:@"%@/%@",username, encryptedData]]; 
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:urlFormat cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60]; 
NSData *returnData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:nil error:nil]; 
NSString *responseString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; 

這是行不通的。

+0

請注意,發送加密的密碼本身很容易變得相當「弱」,除非您知道自己在幹什麼。 – 2014-11-24 16:35:09

+0

是的,我知道。它是好的,但。謝謝 – 2014-11-24 16:50:45

回答

0

通常情況下,你會在一個http請求中base64編碼二進制數據。

NSString *encoded = [encryptedData base64EncodedStringWithOptions: NSDataBase64Encoding64CharacterLineLength]; 
+0

謝謝。它現在通過URL傳遞。我將嘗試在我的web api c#代碼中解碼它,並讓它知道它是否工作。 – 2014-11-24 16:33:28

+0

你可以請更新編碼字符串返回沒有斜槓的代碼嗎? – 2014-11-24 16:53:28

+0

你認爲在這種情況下使用base32會更好嗎? – 2014-11-24 17:00:52