web-dev-qa-db-fra.com

Existe-t-il un moyen d'obtenir le hash de la clé à partir d'APK signé?

Existe-t-il un moyen d’obtenir un hachage clé à partir d’un APK signé? Nous avons un fichier apk Android signé, et nous voulons savoir le hachage clé de cet APK, pour Facebook SDK . ?
Aucune suggestion?

27
Zheng Li

Pour les utilisateurs de Windows qui obtiennent la clé de openssl, cela peut être délicat à certains moments .. J'utilise toujours cela pour trouver le bon signature .. Il suffit de coller ce code dans votre onCreate () et d’exécuter. 

 // Add code to print out the key hash
  try {
  PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
  for (Signature signature : info.signatures) {
  MessageDigest md = MessageDigest.getInstance("SHA");
  md.update(signature.toByteArray());
  Log.e("MY KEY HASH:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
      }
  } catch (NameNotFoundException e) {

  } catch (NoSuchAlgorithmException e) {

  }

Mettre à jour:

Utilisation du studio Android (2.1.2):

  1. Ouvrez votre projet en studio et cliquez sur l’icône de dégradé.
  2. Choisissez votre application -> Tâches -> Android -> SigningReport 

Cela lancera une tâche de gradation qui imprimera le certificat de débogage et de libération avec les clés md5 et sha1

35
amalBit

Sur Linux, j'ai utilisé cette commande pour obtenir le hachage de la clé d'un apk:

 keytool -list -printcert -jarfile [path_to_your_apk] | grep -Po "(?<=SHA1:) .*" |  xxd -r -p | openssl base64

Pour les utilisateurs Mac (OS X), en l'absence de prise en charge de grep -P

keytool -list -printcert -jarfile ~/Downloads/YOURAPKFILE.apk | grep "SHA1: " | cut -d " " -f 3 | xxd -r -p | openssl base64

35
user521297

Vous pouvez télécharger openssa depuis ici

  1. Pour générer la signature, vous devez installer openssl sur votre ordinateur. Si vous N’avez pas un seul téléchargement à télécharger ici
  2. En C:, créer un dossier openssl
  3. Extrayez le contenu du fichier zip openssl téléchargé dans le dossier openssl Du lecteur C:
  4. Ouvrir l'invite de commande
  5. Déplacer vers la corbeille de openssl, c.-à-d. C:\openssl\bin dans l'invite de commande
  6. Exécutez la commande suivante pour générer votre keyhash. Tout en générant Hashkey, il devrait vous demander votre mot de passe.

    keytool -exportcert -alias androiddebugkey -keystore   "C:\Users\Anhsirk.Android\debug.keystore" | openssl sha1 -binary | openssl base64
    

NOTE: Dans le code ci-dessus, notez que vous devez donner votre chemin d'accès à l'utilisateur (c'est-à-dire dans mon cas, il s'agit de C:\Users\Anhsirk, il vous suffit de le modifier pour votre compte d'utilisateur.

Donnez le mot de passe sous la forme Android. Si le mot de passe n’est pas demandé, le chemin du magasin de clés est incorrect.

9
Shani Goriwal

Quand j'ai construit mon application Facebook. J'ai utilisé mon magasin de clés Android. Il existe une fonction de hachage pour cela. Communément utilisé dans les API Google (voir les instructions ci-dessous). Si vous possédez l'application et que vous l'avez signée; cela ne devrait pas être un problème sinon..votre essentiellement foutu.

0
SonicWind