可以为多个应用程序使用相同的密钥库吗?

时间:2016-03-02 06:52:40

标签: android cordova ionic-framework

当我们想要将我们的应用程序发布到Play商店时,我们需要使用密钥库来签署我们的应用程序,该密钥库可以通过以下方式生成:

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

那么,对几个应用程序使用相同的密钥库是否可以?

4 个答案:

答案 0 :(得分:1)

这完全是一个选择问题。

因此,您有一个密钥库文件,并且对应于您拥有密码,另外您拥有的是别名和相应的密码,您可以将此别名用作不同应用的标识。只是建议将事情分开。

根据我的经验,使用较少数量的密码总是好的或/或者你在某处保持书面安全。

答案 1 :(得分:1)

没关系,有时也会有所期待。在某些情况下,您甚至想要使用完全相同的密钥来签署不同的应用程序。将它们全部复制到不同的商店会有点愚蠢,所以你想在每个应用程序的同一个商店中引用相同的密钥。

答案 2 :(得分:1)

Android developer site实际建议使用相同的证书对所有应用进行签名:

  

您应该在应用程序的预期生命周期内使用相同的证书对所有应用程序进行签名。您应该这样做有几个原因:

     
      
  • 应用升级:当系统安装应用更新时,它会将新版本中的证书与现有版本中的证书进行比较。如果证书匹配,系统允许更新。如果使用其他证书对新版本进行签名,则必须为应用程序分配不同的包名称 - 在这种情况下,用户将新版本安装为全新的应用程序。

  •   
  • 应用程序模块化:Android允许由同一证书签名的应用程序在同一进程中运行(如果应用程序请求),以便系统将它们视为单个应用程序。通过这种方式,您可以在模块中部署应用程序,用户可以单独更新每个模块。

  •   
  • 通过权限进行代码/数据共享:Android提供基于签名的权限实施,以便应用可以将功能公开给使用指定证书签名的其他应用。通过使用相同的证书签署多个应用并使用基于签名的权限检查,您的应用可以安全地共享代码和数据。

  •   

但是,你应该带着一点点的意见。第一个要点仅适用于给定应用的更新版本,而不适用于多个不相关的应用。第二个和第三个要点只有在您打算让不同的应用程序按照描述密切配合时才有意义。

答案 3 :(得分:1)

如果它们是完全不相关的应用,我建议使用不同的密钥库。如果您最终销售其中一个应用,则可以放弃相应的密钥库,而不会影响其他应用的安全性。