Objective-C,如何混淆或加密NSString?

Objective-C,如何混淆或加密NSString?,objective-c,encryption,obfuscation,Objective C,Encryption,Obfuscation,我的代码中有一个NSString(文件的路径),我想以某种方式混淆或加密它 但仍然能够在需要时轻松调用文件路径。 我一直在寻找答案,但我所看到的一切要么是专门针对iOS的,要么似乎过于复杂 我只想将其与以下内容结合使用: - (void)method { NSString *obfuscate = @"/path/to/something/secret"; // encrypt or obfuscate [self manageFiles:obfuscate] - (void)manage

我的代码中有一个NSString(文件的路径),我想以某种方式混淆或加密它

但仍然能够在需要时轻松调用文件路径。 我一直在寻找答案,但我所看到的一切要么是专门针对iOS的,要么似乎过于复杂

我只想将其与以下内容结合使用:

- (void)method {

NSString *obfuscate = @"/path/to/something/secret"; // encrypt or obfuscate

[self manageFiles:obfuscate]

- (void)manageFiles(NSString *)obfuscate {

    NSFileManager *files = [[NSFileManager alloc] init];

    if ([files fileExistsAtPath:obfuscate])

    ... .

-非常感谢您提供的任何帮助。

我过去为混淆字符串所做的工作达到了这样的程度:

-(NSString*)myString {

    NSString *string = nil;

    string = [@"ozzzzzzzzzzzzhazzzzzzzizzzzzz" stringByReplacingOccurrencesOfString:@"z" withString:@""];

    return string;
}
它要做的是删除所有出现的字母
z
,留下
ohai
作为字符串。我不确定这对你的情况是否足够,但对我来说是有效的

希望这有帮助

(这是一个老问题,但我还是在回答)

在Obj-C中没有这样的方法。Obj-C是动态的,任何这些方法都可以被捕获和拦截。不要在绝对需要保密的应用程序中发送任何内容。如果你的应用程序是在越狱手机上运行的,或者是在盗版网站上提供的,那么你的应用程序已经被公开,内存内容被转储。所有这些方法都将解码后的数据复制到主存储器中,并将其公开

见:


上述方法实际上都不安全。同样,不要在保证应用程序实际上是安全的情况下将此类内容嵌入到应用程序中。

如果对文件路径进行哈希运算,以后打算如何访问这些文件?你可以做一些非常简单的加密,比如移动字符和旋转字符。用于加密和解密的函数不会有太多的代码行。您可以使用公共加密库。@evanmcdonnal,这就是我要问的;我怎样才能合理地做呢?我喜欢Rot-13或Vigenère的想法。如果你是这么说的你是不是在想斯克拉姆的答案?ty.@JoeHabadas看一看,如果人们要查看你应用程序中的字符串,他们将很容易使用工具查看你应用程序实际访问的文件。像这样混淆路径真的不值得努力;我将如何将其与我所展示的NSFileManager功能结合使用?thanksHow在您这样做之后,您能再次获取原始文件路径吗?虽然它对编写器有效,但我也认为它对攻击者有效。@zaph:我对它做了一些更改,使它变得更难,尽管
string=[@“llqlzlqallqpllqhllq hllqallqlqllqd llqmlqe”stringByReplacingOccurrencesOfString:@“llq”带字符串:@“]-只有一两个人能破解它。我喜欢这种类型的参考资料。。。也许我应该在这里加上(讽刺):虽然这是真的,但同样的论点也可以提出,没有什么东西是真正安全的。即使是数字安全领域的全球领导者Gemalto在2010年和2011年也遭到黑客攻击,甚至RSA也遭到了成功攻击。这是否意味着我们应该放弃尝试?放弃加密?不。重要的是水平工作系数(所需的努力)。增加工作系数总是好的。除其他外,加密增加了工作系数。我们需要评估数据对所有者、攻击者以及开发人员在时间和金钱方面的声誉的价值。关于其他两个答案,它们只不过是混淆,这确实是很弱的,但可能已经足够了。问题是,在选择保护方法时,OP是否评估了价值与工作因素的关系。第二个答案尤其薄弱。第一种算法在最坏的情况下是不必要的,但放在函数中很容易被破解。令我烦恼的是,这些免责声明中没有一项适用于上述情况。如果OP试图保护实际上需要非常隐蔽的数据,我不知道是否有任何答案对于这些技术的工作情况是完全透明的。这个答案甚至没有试图回答这个问题@扎夫:它为我编译(在重新做了整件事之后),我只需要想办法找回我浪费的10分钟。我最终使用了
RSA
来完成这个特殊的任务,这有点令人惊讶,当时没有人提到它。。。在80年代我12岁的时候,这篇文章中使用的技术甚至不会阻止我。