Сообщение об ошибке означает, что ключ, вероятно, имеет 1024 битов, потому что он был сгенерирован с любой версией JDK до JDK 8u151
- в то время как как минимум Ожидается 2048 битов ключ прочности:
Уровень безопасности алгоритма дайджеста SHA-1 недостаточно для этого размера ключа.
Причина этогоэто значит, что размер ключа по умолчанию изменился с 1024 на 2048 бит с JDK 8u151
.Это изменение также можно найти в крипто-дорожной карте JRE / JDK с датой 2017-10-17
:
Обновлены значения по умолчанию для jarsigner и keytool ‑sigalg до SHA256withDSA, а по умолчанию для ‑keysize - до2048 для ключей DSA.
«Инструкции по возврату» будут (которые на самом деле не применяются для вывесок в Android Studio):
Чтобы использовать другой алгоритм и /или меньшего размера ключа используйте параметры ‑sigalg и ‑keysize для keytool и jarsigner, чтобы переопределить текущие значения по умолчанию.Перед этим изменением значения по умолчанию были SHA1withDSA и 1024 бит.
Для APK рекомендуется использовать apksigner вместо jarsigner - иМежду тем существует APK Signature Scheme v3 (они обратно совместимы - поэтому не стоит использовать v1
).
Генерация нового ключа с не менее 2048 битов должна позволять v1
(jar
) подпись.Понижение JDK также будет возможным обходным путем (хотя я бы предпочел этого не делать).
Если вы уже опубликовали этот ключ в Google Play, лучшим из доступных вариантов может быть попытка перейти на Google Play App Signing (ключ выпуска будет понижен до ключа загрузки).
Суть в том, что, скорее всего, ваша общесистемная версия JDK намного старшечем OpenJDK в комплекте с текущей версией Android Studio - и вы можете генерировать столько новых ключей, сколько захотите, но они не будут соответствовать минимальным требованиям безопасности.Обновление общесистемной установленной версии JDK должно позволить вам генерировать ключи с достаточной силой;запустите java -version
, чтобы увидеть, что вы даже используете для генерации ключей с недостаточной прочностью.
или просто используйте ... /android-studio/jre/jre/bin/keytool
для их генерации.