我正在构建一个 iOS 应用程序,但我的应用程序二进制文件显示了我拥有的所有 NSString。有没有办法加密它? 我想从我的应用程序二进制文件中隐藏我所有的 NSStrings。
最佳答案
您将无法以安全的方式加密您的应用程序二进制文件。您至少需要将 key 传递到应用程序包旁边,以便操作系统能够在运行应用程序之前对其进行加密。当您将 key 传递给应用程序旁边时,对您的应用程序感兴趣的人也可以解密它。所以加密整个二进制文件是没有用的。
您是否随应用程序包一起提供密码或 API key ?
最好的办法是重新设计您的应用程序,这样就不需要这些东西了。您可以尝试阻止用户直接从您的二进制文件中读取它们,但他们总能获得它们。一些非常聪明的人已经尝试过但失败了,所以不要浪费时间试图比他们更好。所以不要发送密码或 API key !
如果您仍想在二进制文件中传送敏感数据:
您可以尝试以下方法:
NSString *encryptedSensitiveString = @"mysensitivdatapreviosulyencpryted"; // <- this will be stored in your binary since it's a constant string
NSString *sensitiveString = [someHiddenKey decryptString:encryptedSensitiveString];
// Now you can use your sensitive string which is decrypted at runtime
如果您正在为 Objective-C 寻找一些加密库,您可以使用 MIHCrypto framework based on OpenSSL .
关于ios - 加密 iOS 应用程序二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23726403/