2017-06-04 49 views
8

Google Play uygulama imzalamayı tercih ettim ve google'ın uygulama için imzalama anahtarlarını değiştirdiğini anladım ve Sha 1 sertifikasını buldum ama keyhash'u bulamadım.Google play appinging key hash

Yayımlanan uygulamamın anahtarını nasıl alabilirim onu ​​sertifikadan çıkarmanın bir yolu var mı?

cevap

14

Keyhash'ı Sha1 sertifikası imzası'dan alabilirsiniz. Anahtar karmaları genellikle şu şekilde ayıklanır:

public static String getKeyHash(final Context context) { 
    PackageInfo packageInfo = getPackageInfo(context, PackageManager.GET_SIGNATURES); 
    if (packageInfo == null) 
     return null; 

    for (Signature signature : packageInfo.signatures) { 
     try { 
      MessageDigest md = MessageDigest.getInstance("SHA"); 
      md.update(signature.toByteArray()); 
      return Base64.encodeToString(md.digest(), Base64.NO_WRAP); 
     } catch (NoSuchAlgorithmException e) { 
      Log.w(TAG, "Unable to get MessageDigest. signature=" + signature, e); 
     } 
    } 
    return null; 
} 

Sen imza SHA-1 sürümü Base64 kodlanmış olduğunu görebiliriz. Google Play bu geliştirici konsolunda Uygulama İmzalama menüsü altında

, şuna benzeyen Sha-1 sertifika imza göreceksiniz: Yapmanız gereken şey, Temelde

SHA1: 3B:DA:A0:5B:4F:35:71:02:4E:27:22:B9:AC:B2:77:2F:9D:A9:9B:D9 

bir bayt dizisi bu değiştirmektir ve Base64 bu bayt dizisini kodlar. Sen android giriş ayarlarını veya her yerde sizin gibi Facebook'a bu keyhash kaydedebilirsiniz

byte[] sha1 = { 
    0x3B, (byte)0xDA, (byte)0xA0, 0x5B, 0x4F, 0x35, 0x71, 0x02, 0x4E, 0x27, 0x22, (byte)0xB9, (byte)0xAc, (byte)0xB2, 0x77, 0x2F, (byte)0x9D, (byte)0xA9, (byte)0x9B, (byte)0xD9 
}; 
Log.e("keyhash", Base64.encodeToString(sha1, Base64.NO_WRAP)); 

: Bir şey gibi yapabilirsiniz.

sonraki komutunu kullanarak base64 karma içine (Play konsolunda bulunan gibi) altıgen biçiminde SHA-1 karma dönüştürebilirsiniz
+0

Bu çok iyi çalışıyor. Teşekkürler! –

+0

Ayrıca, bu hash değerini, facebook'tan uygulamadan doğru hesapta oturum açarken bir hata mesajında ​​da edinebilirsiniz. İlginç olan şudur ki, karmalar görsel olarak aynı görünmekle birlikte, programda, yukarıdaki yöntemi kullanarak programlı olarak oluşturduğumda, görsel olarak yazarken değil. – Chris

+0

bu çözümü bulmak için çok fazla zaman harcadı, Cheers. –

17

:

echo 33:4E:48:84:19:50:3A:1F:63:A6:0F:F6:A1:C2:31:E5:01:38:55:2E | xxd -r -p | openssl base64 

Çıktı:

M05IhBlQOh9jpg/2ocIx5QE4VS4= 

Bu karma için de kullanılabilir Örnek, Facebook uygulamasını ayarlarken.

+0

+1000 mükemmel! – HerberthObregon

+0

Basit ve çalışır, teşekkür ederim! Ubuntu değil pencerelerde –

+1

komut desteği –