Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓:保护你的私钥_Android_Security_Signature - Fatal编程技术网

Android 安卓:保护你的私钥

Android 安卓:保护你的私钥,android,security,signature,Android,Security,Signature,我一直在读安卓网站上的“保护你的私钥”部分。它担心作者身份被破坏的可能性 那么,是否可以访问已发布应用程序的签名?我的意思是,例如,从apk文件中提取自动身份或任何类型的信息?怎么做 谢谢。没有访问您的私钥的权限。这就是为什么他们建议你保护它:)如果你想在将来更新应用程序,你还必须使用相同的密钥对其进行签名。丢失您的密钥=市场上的新应用程序必须具有唯一的软件包名称。如果您将您的私钥挂在可公开查看的页面/文件夹上的某个位置,则他们只能访问您的私钥。也就是说,没有什么可以阻止某人解压缩您的应用程序进

我一直在读安卓网站上的“保护你的私钥”部分。它担心作者身份被破坏的可能性

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


谢谢。

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

如果您将您的私钥挂在可公开查看的页面/文件夹上的某个位置,则他们只能访问您的私钥。也就是说,没有什么可以阻止某人解压缩您的应用程序进行更改,然后用另一个键重新启动并在本地运行它。如果有人向你的应用程序中注入恶意代码并在Play Store上更新,他们需要多条信息。他们不仅需要您的密钥,还需要您的google开发者帐户信息。

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

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 (...) {
    //...
}

那么,私钥嵌入的信息越少越好,对吗?如果没有人可以访问它,为什么我们需要插入组织等信息。。。无法访问私钥?不正确。您可以在不使用私钥的情况下获得签名。签名不包含任何秘密。