代码之家  ›  专栏  ›  技术社区  ›  jaiserpe

安卓系统:保护您的私钥

  •  2
  • jaiserpe  · 技术社区  · 12 年前

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

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

    谢谢

    3 回复  |  直到 12 年前
        1
  •  1
  •   Frohnzie    12 年前

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

    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 (...) {
        //...
    }
    
        2
  •  0
  •   Bill Mote    12 年前

    如果不能访问您的私钥。这就是为什么他们建议你保护它:)你也 必须 如果您希望将来更新应用程序,请使用相同的密钥对其进行签名。丢失密钥=市场上的新应用程序,新应用程序必须具有唯一的程序包名称。

        3
  •  0
  •   snowCrabs    12 年前

    只有当你把私钥放在一个公开可见的页面/文件夹上的某个地方时,他们才能访问你的私钥。也就是说,没有什么可以阻止某人解压缩你的应用程序进行更改,然后用另一个密钥辞职并在本地运行它。有人要将恶意代码注入你的应用程序并在Play Store上更新它,他们需要多条信息。他们不仅需要你的密钥,还需要你的谷歌开发者帐户信息。