ios - 加密 iOS 应用程序二进制文件

标签 ios xcode security

我正在构建一个 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/

相关文章:

asp.net-mvc - 如何使 Web API 操作只能从我的应用程序访问?

objective-c - UiimageView 适配于 uiview

ios - 如何防止 NSTimer 被 iOS 5 中的用户界面操作延迟或中断

ios - 同步 UIViewController 转换动画

python - lldb:实现接受用户输入的自定义命令

iphone - 在 xcode 中构建时保持 iphone 解锁

java - 应用程序引擎 java.security.AccessControlException

ios - NSNumberFormater 在 Cocoa 中有效,但在 iOS 中无效

xcode - 使用 Cocoapods 时 Xcode 7.3 中的奇怪错误

objective-c - 提示用户输入密码的正确方法是什么?