混淆iPhone密码

时间:2014-04-08 23:38:40

标签: ios oauth obfuscation

如果我需要混淆硬编码的iPhone密码(Oauth客户端标识符和客户端密钥),这会是一种方法吗?

NSString *a = @"a";
NSString *b = @"b";
NSString *c = @"c";
NSString *d = @"d";
NSString *e = @"e";
NSString *f = @"f";
NSString *g = @"g";
NSString *h = @"h";
NSString *i = @"i";
/*    hidden     */
NSString *w = @"w";
NSString *x = @"x";
NSString *y = @"y";
NSString *z = @"z";

NSString *pwd = [NSString stringWithFormat:@"%@%@%@%@%@%@%@%@", p,a,s,s,w,o,r,d];

我知道不建议使用混淆,但在阅读此OAuth secrets in mobile apps后,这似乎是唯一的方法。

2 个答案:

答案 0 :(得分:2)

如果使用clang -O3进行编译,则只有密码中实际使用的字母才会包含在.o文件中。您应该包含一些假装使用其余字母表的代码,例如对+ stringWithFormat的另一个调用,其结果将被忽略。

答案 1 :(得分:1)

您可以随时离线加密有问题的文本,将加密版本存储在应用程序中,然后在您需要的位置对其进行解密。这样(至少)它不是应用程序中的纯文本。即使你上面的机制也可能在二进制文件中产生一个模式。