0

在我的应用程序中,我正在对服务器 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 代码中可见?

4

1 回答 1

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;
}
于 2013-06-07T13:35:07.047 回答