¿Por qué la huella digital es diferente en mi apk recién firmado?

Estoy teniendo un problema para obtener la misma huella digital después de haber cambiado el tipo de keystore de PKCS12 a JKS.

Para hacer el cambio, creé un nuevo almacén de claves JKS, borré la clave que estaba en él e importé la clave que necesito del archivo .p12. Cuando verifique la clave con keytool -keystore keystore.jks -list la huella digital:

 (SHA1): 21: ... :39 

Que es la huella digital del archivo .p12, y la google de la huella digital dice que mis apks anteriores han sido. Cuando firmo mi apk con este certificado e intento subirlo a la playstore, dice que el certificado tiene la huella digital:

 SHA1: C7: ... :AF 

Cuando examino tanto el archivo .p12 original como el nuevo archivo .jks con KeyStore Explorer ambos listan SHA1: C7: ... :AF como la huella digital.

Edit1:

 keytool -keystore disneyquiz.p12 -storetype PKCS12 -alias 1 -list Enter keystore password: 1, Jun 4, 2014, PrivateKeyEntry, Certificate fingerprint (SHA1): 21: ... :39 keytool -keystore quizstore.jks -list Enter keystore password: Keystore type: JKS Keystore provider: SUN Your keystore contains 1 entry key0, Dec 3, 2014, PrivateKeyEntry, Certificate fingerprint (SHA1): 21: ... :39 

Nuevo Apk

 keytool -printcert -file CERT.RSA Owner: CN=CBP Development, OU=CBP Development, O=CBP Development, C=US Issuer: CN=CBP Development, OU=CBP Development, O=CBP Development, C=US Serial number: 36663939343135303a31343636393337363665663a2d38303030 Valid from: Tue Jun 03 19:29:37 EDT 2014 until: Sat Jun 04 19:29:37 EDT 2039 Certificate fingerprints: MD5: F6: ... :72 SHA1: C7: ... :AF SHA256: 7C:D6: ... :67:B9 Signature algorithm name: SHA1withRSA Version: 3 Extensions: #1: ObjectId: 2.5.29.37 Criticality=false ExtendedKeyUsages [ codeSigning ] 

APK original

 keytool -printcert -file CERT.RSA Owner: CN=CBP Development, OU=CBP Development, O=CBP Development, C=US Issuer: CN=CBP Development, OU=CBP Development, O=CBP Development, C=US Serial number: 36663939343135303a31343636393337363665663a2d38303030 Valid from: Tue Jun 03 19:29:37 EDT 2014 until: Sat Jun 04 19:29:37 EDT 2039 Certificate fingerprints: MD5: AD: ... :CA SHA1: 21: ... :39 SHA256: D2:7D: ... :8E:47 Signature algorithm name: SHA1withRSA Version: 3 Extensions: #1: ObjectId: 2.5.29.37 Criticality=false ExtendedKeyUsages [ codeSigning ] 

Editar 2:

El archivo .p12 original se generó con el generador de Adobe Air Certificate y el apk original se compiló con Adobe Flash Professional CC. Después de probar los certificados e intentar firmar el APK de varias maneras, creo que la única posibilidad es que el proceso de firma de Flash Professional de alguna manera cambie la huella digital reportada cuando firma el apk. El CERT.RSA en el flash creado apk META-INF coincide con el CERT.RSA del nuevo apk. Esperemos que alguien tiene una sugerencia de cómo firmar mi apk nuevo para que pueda actualizar mi aplicación.

El problema es con gradle, mientras que la firma con la clave importada de la clave p12.

Pasos para arreglar:

  1. Cambiar la extensión de apk a zip
  2. No descomprima el apk, sino que lo abra con zip haciendo doble clic
  3. Eliminar la carpeta META-INF
  4. Cambiar la extensión de zip a apk
  5. Firma tu apk desde cmd usando el comando below

Jarsigner -keystore -storepass

  1. Zip algin el apk

Zipalign [-f] [-v] infile.apk outfile.apk

La alineación es un entero que define los límites de alineación de bytes. Esto siempre debe ser 4 (que proporciona la alineación de 32 bits) o bien no hace nada.

He podido volver a publicar uno de mis exitosos pasos

Tengo el mismo problema. ¿Encuentras una solución?

Con esta línea de comandos, tengo la misma huella dactilar que apk. Tal vez, puede ayudarle:

 openssl pkcs12 -in certificat.p12 -nodes -passin pass:PASSWORD | openssl x509 -fingerprint 
  • Firma de solicitud con varios certificados
  • Android keystore dañado
  • Transferencia de la aplicación de Android a otro desarrollador
  • Android Marketplace: ¿Los detalles (nombre, etc) en el almacén de claves son visibles para el usuario?
  • Problema al ejecutar mi keystore firmado y liberado en Eclipse
  • Keytool genera hash de clave de 32 caracteres en vez de 28
  • ¿Cómo desarrollar una aplicación de Android con google maps API en varios equipos?
  • Hash clave para Facebook Android SDK
  • Keytool Signing Problem: Keystore fue manipulado, o la contraseña fue incorrecta
  • Keytool no pide contraseña (usando Facebook lib con android)
  • Cambio de contraseña de keystore de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.