2016-04-29 44 views
1

在我的应用程序的Objective-C的反编译保护我存储密钥加密和解密数据,它被存储为一个字符串定义字符串值

#define ClientSecret @"123456" 

当应用程序反编译此值可轻松到达.. 。如何最好地保护它?

该值不需要是一个定义...是否有一些建议的方法来确保这些值的安全性,这些值难以排列在代码中?

这个问题是双方的iOS和OSX

+0

这是与Objective-C相关的,而不是.Net –

+1

这两个都不是可能的重复。这是C++。此外,答案中讨论的概念,特别是第二个,适用于_all_可执行文件,无论它们是以何种语言编写的。 – dandan78

+0

但我想要一个与Objective-C相关的答案,如提供的mortgy,而不是一般的说话 –

回答

1

UAObfuscatedString可以帮助掩盖你的钥匙。但在某些时候,秘密价值必须可用。例如。如果你的秘密是一个API密钥,它将不得不被传递给该API,并且有人可以在API调用上设置一个断点并在那里读取该值。

+1

我改变了我认为你可能打算的链接,虽然你可以仔细检查... – NSGod

+0

我会提防UAObfuscated字符串,它是开源恶意用户可以找到UAObfuscatedString的代码在每个方法中放置断点并查看调用顺序。我会检查这个: http://www.splinter.com.au/2014/09/16/storing-secret-keys/ –