ios - 使用黑客永远无法访问的字符串/文本编译/提交 iOS 应用程序

标签 ios objective-c security nsstring pki

在我们的应用程序中,我们有几个 API key (也称为共享 key 或私有(private) key )。这些是运行时所需要的。至关重要的是,这些字符串永远不会落入除我/我的组织之外的任何人的手中。

尝试 1 - 什么都不做

NSString *privateKey = @"a6dedb6096973e4576e1dfc9d048075d;

如果有人得到这个应用程序并通过签名,他们可以在二进制文件上运行 strings 并轻松检索所有字符串。 (失败)

尝试 2 - 做点聪明的事

这就是你们这些 stackoverflow 人最擅长的地方。给我一些魔法!

最佳答案

为什么您的应用的每个副本都使用相同的私钥?

发送数据: 如果您的应用需要向您的服务器发送信息,它只需要您的公钥来加密数据。

接收数据(这是棘手的地方): 当应用程序安装在用户的设备上时,它应该生成自己的私钥/公钥对。然后它将公钥发送到您的服务器。 (看上面)。然后,每当服务器需要将数据发送回设备时,它就会使用设备的公钥对所述数据进行加密。因此只有该设备才能解密数据。

关键是,如果您在应用程序中放置一个已知的私钥,那有什么意义呢。

关于ios - 使用黑客永远无法访问的字符串/文本编译/提交 iOS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21442535/

相关文章:

ios - .pch 文件中的#define 不起作用

java - 使用用户插件扩展 Java 应用程序

ios - Swift 中的通用委托(delegate)实现

iphone - 更改 iOS 状态栏

ios - TableView NSInternalInconsistencyException

docker - 为什么 setuid 被丢弃在 Alpine 容器中的 execve 上?

php - 为什么我应该将 REMOTE 和 FORWARDED 都存储为用户的 IP?

ios - 为通用 View 修改 UIWindow

ios - 选择不调用的联系委托(delegate)方法

ios - 从现有 NSArray 创建新 NSArray 的标准约定是什么?