关于Android公钥的澄清?

Kal*_*ina 8 string encryption android in-app-billing google-play

我对http://developer.android.com/guide/google/play/billing/billing_integrate.html#billing-signatures的一些建议感到困惑

为了保护您的公钥免受恶意用户和黑客的攻击,请不要将您的公钥嵌入整个文字字符串.相反,在运行时从片段构造字符串或使用位操作(例如,XOR与其他字符串)来隐藏实际的键.密钥本身不是秘密信息,但您不希望黑客或恶意用户轻易用其他密钥替换公钥.

这是否意味着

String one = "thisIs";
String two = "MyKey";
String base64EncodedPublicKey = one + two;
PublicKey key = Security.generatePublicKey(base64EncodedPublicKey);
verified = Security.verify(key, signedData, signature);
Run Code Online (Sandbox Code Playgroud)

比...更安全

String base64EncodedPublicKey = "thisIsMyKey";
PublicKey key = Security.generatePublicKey(base64EncodedPublicKey);
verified = Security.verify(key, signedData, signature);
Run Code Online (Sandbox Code Playgroud)

?如果没有,你能否在代码中给我一个如何做到这一点的例子?

Chr*_*son 3

是的。尽管在本例中您只是连接字符串,但这并没有好多少。原因是有人可以轻松反汇编您的代码并访问您的公钥。如果您必须重新组装密钥,那么从反汇编的代码中获取密钥就会变得更加困难。