Pla*_*eon 8 security android public-key-encryption
Android开发人员说如下关于在项目中存储应用程序公钥:
安全建议:强烈建议您不要对Google Play提供的确切公共许可证密钥字符串值进行硬编码.相反,您可以在运行时从子字符串构造整个公共许可证密钥字符串,或者在将其传递给构造函数之前从加密存储中检索它.这种方法使恶意第三方更难以修改APK文件中的公共许可证密钥字符串.
这应该是不言自明的吗?我不明白他们要我做什么.
他们在这个例子的评论中说了同样的话,但他们实际上并没有通过他们的指示来证明他们的意思.这就是它所说的:
不是仅将整个文字字符串存储在*程序中,而是在运行时从片段构造键或使用位操作(例如,使用其他字符串的XOR)来隐藏*实际键.密钥本身不是秘密信息,但我们并不希望攻击者能够轻松地用自己的一个*替换公钥,然后从服务器替换伪造的消息.
那么一个人究竟怎么做到这一点呢?
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)
| 归档时间: |
|
| 查看次数: |
1586 次 |
| 最近记录: |