2

我的代码中有一个 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])

    ... .

- 任何帮助表示赞赏,谢谢。

4

2 回答 2

2

(这是一个老问题,但我还是要回复)

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

见: https ://www.youtube.com/watch?v=Ii-02vhsdVk

上述这些方法实际上都不安全。同样,不要将这些东西嵌入到您的应用程序中,以确保它们实际上是安全的。

于 2015-08-26T20:15:52.213 回答
1

我过去为混淆字符串所做的事情是这样的:

-(NSString*)myString {

    NSString *string = nil;

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

    return string;
}

它会做的是删除所有出现的 letter z,留下ohai一个字符串。不确定这是否足以满足您的情况,但它对我有用。

希望这可以帮助!

于 2012-06-11T06:28:04.377 回答