安卓签名MD5相关说明
什么是包名?
每个 Android 应用均有一个唯一的应用 ID。安卓以 Java 包的形式管理应用。具体说明见官方文档:
https://developer.android.com/studio/build/application-id.html
什么是签名文件?
安卓 apk 需要开发者进行签名。.开发调试过程中,IDE(android studio,Eclipse) 会使用默认的 debug 签名文件进行签名。但发布 apk 时必须使用,自己生成的签名文件进行签名。签名文件确保了开发者对
该应用的所有权,因为不同签名文件签名的 apk 不能覆盖原有的。该文件扩展名为 jks.
如何生成新的签名文件
您可以使用 Android Studio 生成应用签名或上传**,步骤如下:
- 在菜单栏中,点击 Build > G enerate Signed APK 。
- 从下拉菜单中选择一个模块,然后点击 Next 。
- 点击 Create new 以创建一个新**和**库。
- 在 New Key Store 窗口上,为您的**库和**提供以下信息,如图 3 所示。
**库
-
- Key store path :选择创建**库的位置。
-
- Passw ord :为您的**库创建并确认一个安全的密码。
**
-
- Alias :为您的**输入一个标识名。
-
- Passw ord :为您的**创建并确认一个安全的密码。此密码应当与您为**库选择的密码不同
- Validity (years) :以年为单位设置**的有效时长。**的有效期应至少为 25 年, 以便您可以在应用的整个生命期内使用相同的**签署应用更新。
- Certificate :为证书输入一些关于您自己的信息。此信息不会显示在应用中,但会作为 APK 的一部分包含在您的证书中。
填写完表单后,请点击 O K 。
具体说明见官方文档:
https://developer.android.com/studio/publish/app-signing.html
什么是签名 MD5? 如何获取
每个签名文件都有一个数字指纹。相当于是公钥,同一个签名文件的指纹是一样的,不同的签名文件指纹不一样。可以通过检查这个指纹确定是不是使用的同一个签名文件。
命令行输入 keytool –list –v –keystore <签名文件路径>
接入第三方服务为什么需要签名 MD5?
安卓的应用是以包名做为唯一 ID 的。大多数第三方服务也是以包名做为单位进行授权的。因为包名是开发者填写的,所以别的开发者也可以写个应用来冒充其他人的应用。第三方服务会涉及到用户的信息,使用过程中也有费用产生。所以为了保护 app 不会他人冒充,第三方对应用的签名进行校验。刚才也提到了,因为 MD5 算法的不可逆性,可以当做公钥使用。用户在申请时在后台填写签名的MD5 值,发布/测试时,使用该签名文件。第三方服务在运行时会对当前应用的签名 MD5 进行校验,如果信息不一致会拒绝服务。