【发布时间】:2017-02-27 03:52:47
【问题描述】:
由于最近的 SHA1-collision 新闻,我想确保 SHA1 不再用于我的 apk 签名。但是我在apksigner 中找不到参数。
有没有办法指定(直接或间接)apksigner 使用的摘要算法?
(在 SDK 24 之前,Android 使用 java 的 jarsigner 来签署 apk,其中有 -sigalg SHA1withRSA -digestalg SHA1 之类的选项)
更新:正如 Alex 提到的,我发现 apksigner 如何在 V1SchemeSigner.java 中确定方案 v1 的签名算法。
简而言之,apksigner 由minimumSDK 和证书的密钥类型确定。
-
SHA256withRSA最低 SDK 18 (Android 4.3) 及更高版本 -
SHA256withDSA最低 SDK 21 (Android 5.0) 及更高版本 -
SHA256withEC最低 SDK 18 及更高版本 -
SHA1with*用于更低的最低 SDK 级别
这是我为备忘录写的常见问题解答:SHA1 Collision and Android APK Signing。
【问题讨论】: