关于安卓包名、MD5值的一些讲解
用户已被禁言 发布于2017-10 浏览:4746 回复:4
1
收藏

在使用人脸安卓端SDK的时候,往往有不少同学纠结于包名和MD5的事情,因为客户端SDK需要配合license授权文件使用,所以安卓端的包名和md5即为license生成的主要依据,下面分别仔细讲解一下,希望对大家有些帮助(微笑脸)

 

什么是包名?

每个 Android 应用均有一个唯一的应用 ID。安卓以 Java 包的形式管理应用。 具体说明见官方文档:https://developer.android.com/studio/build/application-id.html

 

什么是签名文件?

安卓apk需要开发者进行签名。开发调试过程中,IDE(android studio,Eclipse) 会使用默认的debug 签名文件进行签名。但发布apk时必须使用,自己生成的签名文件进行签名。签名文件确保了开发者对 该应用的所有权,因为不同签名文件签名的apk不能覆盖原有的。该文件扩展名为jks

 

如何生成新的签名文件?

您可以使用Android Studio生成应用签名或上传密钥,步骤如下:

  1. 在菜单栏中,点击Build->GenerateSignedAPK
  2. 从下拉菜单中选择一个模块,然后点击Next
  3. 点击Create new以创建一个新密钥和密钥库
  4. New Key Store窗口上,为您的密钥库和密钥提供以下信息,如下图所示:

     

密钥库

  • Key store path:选择创建密钥库的位置。
  • Password:为您的密钥库创建并确认一个安全的密码。

密钥

  • Alias:为您的密钥输入一个标识名;
  • Password:为您的密钥创建并确认一个安全的密码。此密码应当与您为密钥库选择的密码不同;
  • Validity (years):以年为单位设置密钥的有效时长。密钥的有效期应至少为 25 年,以便您可以在应用的整个生命期内使用相同的密钥签署应用更新;
  • Certificate:为证书输入一些关于您自己的信息。此信息不会显示在应用中,但会作为APK的一部分包含在您的证书中;

填写完表单后,请点击 OK。

具体说明见官方文档:https://developer.android.com/studio/publish/app-signing.html

 

什么是签名 MD5? 如何获取

每个签名文件都有一个数字指纹。相当于是公钥,同一个签名文件的指纹是一样的,不同的签名文件指纹不一样。可以通过检查这个指纹确定是不是使用的同一个签名文件。百度人脸鉴权服务使用的是 MD5方式的指纹。

命令行输入:

keytool –list –v –keystore <签名文件路径>

然后输入密码,会打印出该签名文件相关的信息。其中的一项是证书指纹 MD5,如下图所示:

 

为什么需要签名 MD5?

安卓的应用是以包名做为唯一ID的。百度的人脸服务也是以包名做为单位进行 授权的。因为包名是开发者填写的,所以别的开发者也可以写个应用来冒充其他人的应用。百度人脸服务会涉及到用户的信息,使用过程中也有费用产生。所以为了保护APP不会他人冒充,我们对应用的签名进行校验。刚才也提到了,因为MD5算法的不可逆性,可以当做公钥使用。用户在申请时在后台填写签名的MD5值,发布/测试时,使用该签名文件。人脸服务在运行时会对当前应用的签名MD5 进行校验,如果信息不一致会拒绝服务。

 

收藏
点赞
1
个赞
共4条回复 最后由long龙双双回复于2022-08
#5long龙双双回复于2022-08

讲解真细,楼主贴心

0
#4201小帅回复于2021-12

我的秘钥类型是 PKCS12, 生成的MD5是20位的,这个SDK需要 JKS MD5  16位的,我该怎么弄?

0
#3用户已被禁言回复于2017-10

给你点赞哦

0
#2用户已被禁言回复于2017-10

谢谢楼主分享  刚刚发了贴问大家  就看到了

0
TOP
切换版块