Android应用内安全建议 - 这是什么意思?

Pla*_*eon 8 security android public-key-encryption

Android开发人员说如下关于在项目中存储应用程序公钥:

安全建议:强烈建议您不要对Google Play提供的确切公共许可证密钥字符串值进行硬编码.相反,您可以在运行时从子字符串构造整个公共许可证密钥字符串,或者在将其传递给构造函数之前从加密存储中检索它.这种方法使恶意第三方更难以修改APK文件中的公共许可证密钥字符串.

这应该是不言自明的吗?我不明白他们要我做什么.

他们在这个例子的评论中说了同样的话,但他们实际上并没有通过他们的指示来证明他们的意思.这就是它所说的:

不是仅将整个文字字符串存储在*程序中,而是在运行时从片段构造键或使用位操作(例如,使用其他字符串的XOR)来隐藏*实际键.密钥本身不是秘密信息,但我们并不希望攻击者能够轻松地用自己的一个*替换公钥,然后从服务器替换伪造的消息.

那么一个人究竟怎么做到这一点呢?

sky*_*eek 2

Android 开发人员想说的是,您需要与 google play 同步才能使用您的应用程序进行任何付款,它不应该直接在您的应用程序源代码中使用,因为它很容易被任何人黑客攻击。因此,一种方法是将您的公钥存储在服务器端,一旦您从 google play 获得响应以验证密钥,则将该响应发送到服务器并在服务器上执行您的操作。

       /**
       * String transformation by XOR-ing all characters by value.
       */
       static String stringTransform(String s, int i) {
       char[] chars = s.toCharArray();
       for(int j = 0; j<chars.length; j++)
        chars[j] = (char)(chars[j] ^ i);
         return String.valueOf(chars);
       }
Run Code Online (Sandbox Code Playgroud)