我有一些敏感数据想在使用后直接清除。目前,敏感数据都是NSString的形式。根据我的理解,NSString 是不可变的,这意味着我无法真正清除数据。不过,NSMutableString 似乎更合适,因为它是可变的,并且具有诸如replaceCharactersInRange 和deleteCharactersInRange 之类的方法。我不了解实现细节,所以我想知道 NSMutableString 是否能满足我的目的?
我担心 NSMutableString 会尝试优化并将字符串保留在内存中。如果您想要更多控制,请尝试分配自己的内存,然后用它创建一个 NSString。如果这样做,您可以在释放内存之前覆盖它。
char* block = malloc(200);
NSString* string = [[NSString alloc] initWithBytesNoCopy:length:encoding:freeWhenDone];
//use string
memset(block, 0, 200);// overwrite block with 0
[string release];
free(block);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)