如何在源代码中存储服务器身份验证

时间:2013-06-07 13:20:08

标签: nsstring obfuscation encryption

在我的应用中,我正在服务器API上做各种请求。当我正在执行这些请求时,我的请求者类的一部分是:

NSString *authString = [[[NSString stringWithFormat:@"serverUsername:serverPass"]dataUsingEncoding:NSUTF8StringEncoding] base64EncodedString];
NSString *verifString = [NSString stringWithFormat:@"Basic %@",authString];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
NSData *myRequestData = [NSData dataWithBytes:[ms UTF8String] length:[ms length]];
[request setHTTPBody:myRequestData];

我没有包含所有源代码,但后来我有另外一个字符串,我不想在源代码中看到它们(指纹等)。

我正在搜索代码混淆,但没有成功。有没有办法阻止我的凭证字符串在x-code中可见?

1 个答案:

答案 0 :(得分:1)

我认为最好的方法是将其存储在plist文件中。

- (NSString *)saveRecommendUserData {
  NSError *error;
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  NSString *documentsDirectory = [paths objectAtIndex:0];
  NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Userdata.plist"];
  NSFileManager *fileManager = [NSFileManager defaultManager];

  if (![fileManager fileExistsAtPath:path])
  {
      NSString *bundle = [[NSBundle mainBundle] pathForResource:@"Userdata" ofType:@"plist"];
      [fileManager copyItemAtPath:bundle toPath: path error:&error];
  }

  return path;
}