У меня есть приложение для Android (и его производственное хранилище), которое было впервые создано с помощью Adobe Air. Давным-давно компания переключилась на обычный Android SDK для разработки приложения, но поскольку приложение уже было в производстве, хранилище ключей, которое мы используем, по-прежнему остается тем же (созданным тогда Adobe Air).Keystore SHA1 отличается от cert.rsa SHA1 от APK
Я использовал Keytool для извлечения SHA1 для Google Places API, я получил что-то вдоль этих линий:
Alias name: <alias_name>
Creation date: Jan 11, 2015
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=<company_name>, OU=, O=, C=US
Issuer: CN=<company_name>, OU=, O=, C=US
Serial number: <lotsofnumbers>
Valid from: Mon Mar 28 14:08:17 IST 2011 until: Sat Mar 29 14:08:17 IDT 2036
Certificate fingerprints:
MD5: ..:8D:F7
SHA1: ..:E6:69
SHA256: ..:38:9A
Signature algorithm name: SHA1withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
codeSigning
]
Эта SHA1 (отделка Е6: 69) никогда не работали в Google Places API, так что я проверил, что было CERT.RSA АПК содержал, и это выглядело почти так же, за исключением отпечатков пальцев сертификата:
Valid from: Mon Mar 28 14:08:17 IST 2011 until: Sat Mar 29 14:08:17 IDT 2036
Certificate fingerprints:
MD5: ..:E1:30
SHA1: ..:72:74
SHA256: ..:9D:6D
Signature algorithm name: SHA1withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
codeSigning
]
Это SHA1 (заканчивая 72:74) работал отлично, и я наконец-то удалось использовать API Google Адресов производства. Но я не понимаю, почему эти два отпечатка сертификата различны.
Я на 1000% уверен, что это одно и то же хранилище ключей, так как это возможно?
Когда я смотрю на андроид ключа отладки инфо структурирован таким же образом, но Extensions разные:
Alias name: androiddebugkey
Creation date: Oct 26, 2014
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 3bddeb55
Valid from: Sun Oct 26 21:03:56 IST 2014 until: Tue Oct 18 22:03:56 IDT 2044
Certificate fingerprints:
MD5: ..:01:17
SHA1: ..:00:77
SHA256: ..:32:93
Signature algorithm name: SHA256withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: <weird hexa number and characters>
0010: <weird hexa number and characters>
]
]
Суммируя мои вопросы:
- Как это возможно SHA1 сделать не соответствует?
- Не может быть разница в расширениях?
- Как я могу использовать keytool (или другой инструмент), чтобы показать мне правильный SHA1?
- Могу ли я избавиться от этого расширения подписи кода, чтобы вернуться в «обычное хранилище андроидов»?
, насколько я знаю, этот метод только покажет вам SHA1 для отладки хранилища ключей – yogipriyo