且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

【字节码插桩】Android 签名机制 ( 生成 Android 签名文件 | 分析签名文件 | 签名文件两个密码的作用 | 三种签名方式 )(一)

更新时间:2022-04-25 14:25:47

文章目录

一、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… " 选项 ,

【字节码插桩】Android 签名机制 ( 生成 Android 签名文件 | 分析签名文件 | 签名文件两个密码的作用 | 三种签名方式 )(一)



选择 APK 选项 ,


【字节码插桩】Android 签名机制 ( 生成 Android 签名文件 | 分析签名文件 | 签名文件两个密码的作用 | 三种签名方式 )(一)


选择创建新的签名文件 ,

【字节码插桩】Android 签名机制 ( 生成 Android 签名文件 | 分析签名文件 | 签名文件两个密码的作用 | 三种签名方式 )(一)



在 " Key store path " 中 , 选择签名文件的生成路径 ,


【字节码插桩】Android 签名机制 ( 生成 Android 签名文件 | 分析签名文件 | 签名文件两个密码的作用 | 三种签名方式 )(一)


在弹出的对话框中 , 点击绿色的安卓图标 , 生成在工程根目录 ,

【字节码插桩】Android 签名机制 ( 生成 Android 签名文件 | 分析签名文件 | 签名文件两个密码的作用 | 三种签名方式 )(一)


输入密码和别名密码 , 都设置为 123456 , 点击 " OK " 即可生成该签名文件 ;

【字节码插桩】Android 签名机制 ( 生成 Android 签名文件 | 分析签名文件 | 签名文件两个密码的作用 | 三种签名方式 )(一)