Android:保护您的私钥

时间:2013-04-12 12:42:36

标签: android security signature

我一直在阅读Android网站上的“保护您的私钥”部分。它想知道创作身份被泄露的可能性。

然后,是否可以访问已发布应用的签名?我的意思是例如从apk文件中提取autor身份或任何类型的信息?怎么样?

感谢。

3 个答案:

答案 0 :(得分: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 (...) {
    //...
}

答案 1 :(得分:0)

无法访问您的私钥。这就是为什么他们建议您保护它:)如果您希望将来更新它,必须使用相同的密钥签署应用程序。在市场上丢失你的key = new app,新应用必须有一个独特的包名。

答案 2 :(得分:0)

如果您将其隐藏在可公开查看的页面/文件夹中的明确位置,他们只能访问您的私钥。话虽如此,没有什么可以阻止某人解压缩你的应用程序进行更改,然后用另一个密钥重新签名并在本地运行它。如果有人将恶意代码注入您的应用并在Play商店中进行更新,则需要多条信息。他们不仅需要您的密钥,还需要您的Google开发者帐户信息。