2013-07-02 29 views
22

İmzalı APK'dan anahtar karması almanın bir yolu var mı? İmzalı bir Android apk dosyası var ve bu APK'nın Facebook SDK'sı için anahtar karmasını öğrenmek istiyoruz. Bunu jarsigner gibi bir şeyle yapabilir miyiz?
Herhangi bir öneriniz var mı?İmzalı APK'dan anahtar karması almanın bir yolu var mı?

+0

[bu] 'yu kontrol etmeye çalışın (http://stackoverflow.com/questions/11864700/signed-apk-has-different-key-hash-for-facebook) yanıtı – user1283633

cevap

26

, bazı zamanlar zor olabilir .. I her zaman th kullanın Doğru imzasını bulmaktır. Sadece bu kodu onCreate() 'a yapıştırın ve çalıştırın.

  1. stüdyo projenizi açın ve gradle simgesine tıklayın: Android stüdyo (2.1.2) kullanarak

    :

    // 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) { 
    
        } 
    

    Güncelleme

    .
  2. uygulamanızı seçin -> Görevler -> android -

Bu hata ayıklama yazdırmak ve md5 ve sha1 tuşları

+0

Lütfen paket adının herhangi bir Bu telefona yüklenen şey, böylece yeni bir uygulama yazabilir ve bu uygulamayı kullanarak diğer uygulamanın anahtar karmasını alabilirsiniz. –

+0

Gradle 4.1'i kullanarak, raporun çıktı olduğu çıktıyı görmedim 'Variant: release Config: none', herhangi bir Fikri neden? –

+1

@ john-salib, sürüm yapılandırmasını sıfırlamak zorundayız. https://stackoverflow.com/questions/18460774/how-to-set-up-gradle-and-android-studio-to-do-release-build – amalBit

0

Facebook uygulamamı oluşturduğumda. Android anahtar depomu kullandım. Bunun için bir karma işlevi var. Genellikle Google API'larında kullanılır. (Talimatlar için bkz.). Uygulamanın sahibi sizseniz ve imzaladıysanız; Bu başka bir sorun olmamalı ... temelde vidalı. Hiçbir yolu yoktur.

6

Sen pc yüklü openssl ihtiyaç imzayı oluşturmak için here

  1. dan openssa indirebilirsiniz. Burada
  2. C'de itibaren bir indirme openssl yok ise:, C Openssl içine klasörü indirilen Openssl zip dosyasının içeriğini ayıklayın Openssl klasörü
  3. oluşturun:
  4. Açık Command sürücü istemi
  5. Openssl bin kutusuna taşıyın, yani komut isteminde C: \ openssl \ bin
  6. Anahtarlığınızı oluşturmak için aşağıdaki komutu çalıştırın. hashkey oluştururken size şifre sormalısınız.

NOT

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Anhsirk.android\debug.keystore" | openssl sha1 -binary | openssl base64 
: Yukarıdaki kodda
, kullanıcıya kendi yolunu vermek gerekir unutmayın (yani benim durumumda o C: \ Users sadece bu değiştirmeniz gerekir, Anhsirk \ kullanıcı hesabı.

android olarak şifreyi ver. Paranın deposu yolu yanlıştır şifre isteyecektir yoksa. Openssl anahtarı alma pencereleri kullanıcıları için

23

linux üzerinde sertifikayı yayınlayacak bir gradle görevi çalışacak, bunu kullandım SigningReport> hiçbir grep -P destek

olmadığı için Mac kullanıcıları (OS X) için

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

: komut bir apk'de anahtar karma almak

+0

Belirli bir soruya cevap verdiğiniz için teşekkür ederiz. Mevcut bir APK'nın karmasını, aynı anahtarla imzalandığından emin olmak için yenisininkiyle karşılaştırmam gerekiyordu. Tutarın anahtar deposu dosyasından, kabul edilen cevapta olduğu gibi üretilmesi yeterli değildir. –

+12

OSX için (grep -P desteği yok). 'keytool -list -printcert-jarfile ~/Dosyalar/YOURAPKFILE.apk | grep "SHA1:" | kesim -d "" -f 3 | xxd -r -p | openssl base64' – caller9

+1

@ caller9 terminal komutunuz, 'keytool -list -printcert -jarfile ~/Dosyalar/YOURAPKFILE.apk | grep "SHA1:" | kesim -d "" -f 3 | xxd -r -p | openssl base64 'tam olarak aradığım şeydi. Teşekkürler – VirtualProdigy

İlgili konular