Подробнее о проблеме :
Я сгенерировал новое хранилище ключей и пару ключей с помощью следующей команды, убедившись, что SHA-256 установлен в качестве алгоритма подписи:
Код: Выделить всё
keytool -genkeypair -v -keystore my-release-key.jks -keyalg RSA -keysize 4096 -sigalg SHA256withRSA -validity 10000 -alias my-key \
-dname "CN=My Company, OU=Development, O=My Company, L=City, ST=State, C=Country" \
-storepass "yourKeystorePassword" -keypass "yourKeyPassword"
type here
Код: Выделить всё
apksigner verify --verbose --print-certs my-app.apk
Код: Выделить всё
Verifies
Verified using v1 scheme (JAR signing): false
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): true
Verified using v3.1 scheme (APK Signature Scheme v3.1): false
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: false
Number of signers: 1
Signer #1 certificate DN: CN=xxxx, OU=xxxx, O=xxxx, L=xxxx, ST=xxx, C=xxx
Signer #1 certificate SHA-256 digest:
Signer #1 certificate SHA-1 digest:
Signer #1 certificate MD5 digest:
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 4096
Signer #1 public key SHA-256 digest:
Signer #1 public key SHA-1 digest:
Signer #1 public key MD5 digest:
Почему SHA-1 все еще появляется в сертификате подписи, когда ключ генерируется с помощью SHA-256?
Можно ли полностью исключить SHA- 1 в процессе подписи, сохраняя при этом совместимость с Android?
Каковы наилучшие методы обеспечения соответствия подписи моего APK новейшим стандартам безопасности, особенно в отношении SHA-1?
Буду признателен за любые идеи и рекомендации. от сообщества по этому вопросу. Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-sha-256