文章目录
一、Android 签名机制
二、生成 Android 签名文件
三、分析签名文件
四、签名文件两个密码的作用
五、三种签名方式
一、Android 签名机制
APK 文件签名 是为了保证 APK 来源真实性 , 以及 APK 文件没有被修改过 ;
APK 签名基于 Hash 散列算法进行 ;
Hash 散列算法特性 :
唯一性
长度固定
不可逆
常用的 Hash 三列算法 :
SHA-1 算法 : 安全散列算法 1 11 , 长度 160 160160 位 ;
MD5 算法 : 128 128128 位 ;
签名过程 :
① 计算数据摘要 : 通过 Hash 算法 , 计算出原始数据 ;
② 私钥加密 : 使用私钥对原始数据再次进行加密 ; 校验时 , 使用公钥对原始数据进行解密 ;
③ 写入签名 : 将签名写入签名区块 ;
签名时 , 输入签名文件 keystore 的密码后 , 还要输入的别名 和 别名密码 ; 一个 keystore 可以存放多个密钥 ;
签名相当于一个指纹 , 对 APK 的任何修改 , 哪怕在任意资源文件上加上一个空格 , 都会导致签名被破坏 , 无法通过校验 ;
签名时 , 使用私钥对 APK 加密 ; 安装 APK 包时 , 系统会使用公钥解密 ;
二、生成 Android 签名文件
生成签名密钥 :
在 Android Studio 中 , 选择 " 菜单栏 / Build / Generate Signed Bundle/APK… " 选项 ,
选择 APK 选项 ,
选择创建新的签名文件 ,
在 " Key store path " 中 , 选择签名文件的生成路径 ,
在弹出的对话框中 , 点击绿色的安卓图标 , 生成在工程根目录 ,
输入密码和别名密码 , 都设置为 123456 , 点击 " OK " 即可生成该签名文件 ;