我正在构建一个iOS应用程序,用户通过API密钥向服务器发送请求。在源代码中隐藏API密钥
NSSTRING* secretAPIkey = @"12345secretKey";
我读过有关逆向工程如果有人可以查看源代码,基本上是:Altough当我需要有此密钥为源代码中的静态字符串出现问题。
我的解决方案: 1.多个静态字符串,然后将它们组合成一个
nsstring *1 = @"1";
nsstring *2 = @"2";
nsstring *complete [nsstring stringwithformat:@"%@%@",1,2];
and so on..
在info.plist中
- 保存它。
- 由于所有用户都需要相同的API密钥,所以不能确定钥匙串是否在所有应用程序中都是全局的。
任何其他解决办法?什么是最好的方法?
首先定义您正在防御的攻击者的级别。考虑一个iOS应用程序是由Apple用Apple密钥加密的,没有人可以在休息时检查二进制文件。为了获得访问密钥,iOS设备必须越狱并安装黑客工具。使用这些工具将启动应用程序并在执行之前暂停应用程序,并且可以在此时检查二进制文件。这是您所抵御的攻击者的等级吗? – zaph