我正在开发一个Android应用程序,由Xamarin为Android使用Mono。我目前正在使用Google Play API添加应用内购买功能。为此,我需要从我的应用内向Google发送公共许可证密钥。关于这个问题,谷歌提出以下建议:在APK中保护字符串
安全建议:强烈建议您不要 硬编码的确切公共许可证密钥字符串值,按照 谷歌播放提供。相反,您可以在运行时从子字符串构造整个公共许可证密钥 字符串,或者在将其传递给构造函数之前从加密的 存储中检索它。这种方法使得 更难以让恶意的第三方修改APK文件中的公开 许可证密钥字符串。
我从来没有处理加密,黑客攻击/破解或任何其他方面的软件安全,所以我不知道如何实施谷歌的建议。我的问题是一个充分如何保护一个安卓系统中的字符串,而不必成为安全专家?
感谢您的回复。但我仍然想知道解决这个问题的一个好的行业标准方法,因为Google Play键不是我应用程序中唯一的关键字符串(例如Facebook应用程序键,也可能是未来的其他键)。 – Ramsay
使用商业模糊处理工具。这些工具会覆盖您的代码并使其难以反编译。商业版通常包含一个自动字符串加密功能,可以确保您的所有硬编码字符串(如密钥)永远不会在您的应用中保持明文形式,并在运行时进行解码。大量的混淆器可用于c#/ android。它们非常容易集成到构建过程中,并且在保护代码的过程中为您完成所有繁重的工作。 – talkol
下面是商业混淆器用于惹恼潜在黑客的一些技术列表:http://www.ssware.com/cryptoobfuscator/features.htm。永远记住,一个坚定的黑客仍然能够克服所有这些......但对他来说,这将不那么有趣;) – talkol