2

我一直在阅读 Android 网站上的“保护您的私钥”部分。它担心创作身份受到损害的可能性。

那么,是否可以访问已发布应用程序的签名?我的意思是例如从 apk 文件中提取作者身份或任何类型的信息?如何?

谢谢。

4

3 回答 3

1

是的,您可以获得已安装应用程序的签名。下面的示例将获取用于对包进行签名的所有签名。

try {
    PackageInfo info = getPackageManager().getPackageInfo(pkgName, PackageManager.GET_SIGNATURES);
    Signature[] sigs = info.signatures;
    for (Signature sig : sigs) {
        CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
        ByteArrayInputStream in = new ByteArrayInputStream(sig.toByteArray());
        X509Certificate cert = (X509Certificate) certFactory.generateCertificate(in);
        // Verify or inspect cert here
    }
} catch (...) {
    //...
}
于 2013-04-12T13:02:19.060 回答
0

如果您将私钥留在公开可见的页面/文件夹上的某个地方,他们只能访问您的私钥。话虽如此,没有什么可以阻止某人解压缩您的应用程序进行更改,然后用另一个密钥将其辞职并在本地运行它。如果有人将恶意代码注入您的应用并在 Play 商店中更新,他们需要多条信息。他们不仅需要您的密钥,还需要您的谷歌开发者帐户信息。

于 2013-04-12T12:55:13.373 回答
0

并非没有访问您的私钥。这就是为什么他们建议您保护它:)如果您希望将来更新它,您还必须使用相同的密钥签署一个应用程序。丢失您的密钥 = 市场上的新应用程序,新应用程序必须具有唯一的包名称。

于 2013-04-12T12:44:15.883 回答