【问题标题】:How to pass an encrypted NSString with stringByAppendingFormat?如何使用 stringByAppendingFormat 传递加密的 NSString?
【发布时间】:2014-11-24 15:43:32
【问题描述】:

我创建了一个 as.net web api 来接收用户凭据以进行身份​​验证。在我的 iOS 应用程序中,我将用户名和密码发送到 url。我只想加密密码。

如何发送加密密码,然后我可以在 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];

这不起作用。

【问题讨论】:

  • 请注意,除非您知道自己在做什么,否则从安全角度来看,发送加密密码本身往往相当“弱”。
  • 是的,我知道。不过没关系。谢谢

标签: objective-c encryption


【解决方案1】:

通常您会在 http 请求中对二进制数据进行 base64 编码。

NSString *encoded = [encryptedData base64EncodedStringWithOptions: NSDataBase64Encoding64CharacterLineLength];

【讨论】:

  • 谢谢。它现在正在通过 URL。我将尝试在我的 web api c# 代码中对其进行解码,并让您知道它是否有效。
  • 您能否更新编码字符串返回不带斜线的代码?
  • 你认为这种情况下使用base32更好吗?
  • 或者考虑在 URL 中不包含 base64 编码的数据,而是将其作为标头条目传入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-24
  • 2016-02-04
  • 2013-11-23
  • 2011-12-10
  • 2011-02-18
  • 1970-01-01
相关资源
最近更新 更多