mac - key hashes facebook android



Facebook Android Gerar Hash Chave (14)

Tentando criar um aplicativo Android com integração com o Facebook, eu cheguei à parte nos documentos onde você tem que gerar um arquivo-chave hash, especifica para executar o seguinte código

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore 
| openssl sha1 -binary
| openssl base64

Quando executo isso no meu terminal, recebo um erro para que o Keystore seja violado ou a senha estava incorreta.

Eu só quero gerar meu hash chave

Alguém pode me apontar na direção certa?

https://code.i-harness.com


Gerar chave de hash de depuração

  public String hashkey(Context context) {
        String keyhash = "";
        try {
            PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
                keyhash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
            }
        } catch (PackageManager.NameNotFoundException e) {

        } catch (NoSuchAlgorithmException e) {

        }
        return keyhash;
    }

Gerar chave hash de lançamento

 keytool -exportcert -alias specialbridge -keystore /home/shilpi/newproject/specialBridge/SpecialBridgeAndroid/keystore/specialbridge.jks | openssl sha1 -binary | openssl base64

RESPOSTA ATUALIZADA (Gerando através de código) Método mais simples:

Na minha experiência, openssl sempre sendo problemático, tentei o segundo método sugerido pelo facebook. E é maravilhoso. Este é o melhor método para obter a chave de hash.

A segunda opção é imprimir o hash da chave enviado para o Facebook e usar esse valor. Faça as seguintes alterações no método onCreate () em sua atividade principal:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    "com.facebook.samples.loginhowto", 
                    PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
                }
        } catch (NameNotFoundException e) {

        } catch (NoSuchAlgorithmException e) {

        }
        ...other operations

}//end of onCreate

Substitua com.facebook.samples.loginhowto pelo seu próprio nome de pacote (nome do pacote em Manifest.xml).

Link oficial - https://developers.facebook.com/docs/android/login-with-facebook/ (Veja no final da página)

ANSWER ANTIGA (Gerando Keyhash usando openssl)

  1. para gerar assinatura você precisa de openssl instalado no seu pc. Se você não tem um download abre a here.
  2. Em C openssl crie a pasta openssl
  3. extrair o conteúdo do arquivo zip openssl baixado na pasta openssl na unidade C:
  4. abrir prompt de comando
  5. mover para bin de openssl ie C:\openssl\bin no prompt de comando
  6. execute o seguinte comando para gerar seu keyhash. Ao gerar o hashkey, ele deve perguntar a senha.

    keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ Anhsirk.android \ debug.keystore" | openssl sha1 -binário | openssl base64

NOTA : no código acima, note que, você precisa dar o seu caminho para o usuário (ou seja, no meu caso, é C: \ Users \ Anhsirk, você só precisa mudar isso para sua conta de usuário.

Dê senha como andróide

. Se não pedir senha, o caminho do armazenamento de chaves está incorreto.

Se tudo funcionar bem, deve dar-lhe o hashkey abaixo.


A única coisa que funciona para mim é usar a senha android . Por que isso não é mencionado em nenhum guia lá fora?


A chave certa pode ser obtida a partir do próprio aplicativo, adicionando o seguinte código para torrar o hash de chave apropriado (no caso do SDK 3.0 do Facebook em diante, isso funciona)

try {
            PackageInfo info = getPackageManager().getPackageInfo("com.package.mypackage",         PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
                Log.e("MY KEY HASH:", sign);
                Toast.makeText(getApplicationContext(),sign,         Toast.LENGTH_LONG).show();
            }
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}

Substitua com.package.mypackage pelo nome do seu pacote


Eu consegui executar a tarefa solicitada com algumas das soluções aqui, mas pensei comigo mesmo, rapaz que é burro ... por que não escrever um pequeno código Java que faz isso e empacotá-lo em um Jar, então eu fiz. ..

Um link para baixar o Jar

O Works no Windows 8 ... não experimentou nenhum outro SO.


Exclua seu certificado de depuração em ~ / .android / debug.keystore (no Linux e no Mac OS X); o diretório é algo como% USERHOME% /. android no Windows.

O plug-in do Eclipse deve gerar um novo certificado quando você tentar construir um pacote de depuração.

Deixe-me saber se isso funciona.


Mesmo que esse segmento seja antigo, eu gostaria de compartilhar minha experiência (recentemente comecei a trabalhar com o facebook), o que me parece correto:

  1. Faça o download do openssl no link abaixo: https://code.google.com/p/openssl-for-windows/downloads/list
  2. Descompacte-o em uma unidade local (por exemplo, C: \ openssl)
  3. Para obter a chave de desenvolvimento para a integração do facebook, use o seguinte comando na linha de comando do Windows:

    keytool -exportcert -alias androiddebugkey -keystore% HOMEPATH% .android \ debug.keystore | "C: \ openssl \ bin \ openssl.exe" sha1 -binário | "C: \ openssl \ bin \ openssl.exe" base64

NOTA !: por favor, substitua o caminho para o openssl.exe (neste exemplo, é "C: \ openssl \ bin \ openssl.exe") com o seu próprio caminho de instalação.

  1. Ele solicitará a senha, por exemplo,

Digite a senha do keystore: android

Digite android como senha, conforme mostrado acima.

É isso aí! Você receberá uma chave de 28 caracteres. Felicidades!

Use o mesmo procedimento para obter a chave de liberação. Apenas substitua o comando pelo seguinte e use o alias da chave de liberação.

keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | "CAMINHO PARA openssl.exe" sha1 -binary | openssl base64


Oi pessoal, é a minha história como eu sou assinado tem chave para o facebook

Primeiro de tudo você acabou de copiar este 2 métodos em sua primeira classe

    private void getAppKeyHash() {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                getPackageName(), PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md;

            md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            String something = new String(Base64.encode(md.digest(), 0));
            System.out.println("HASH  " + something);
            showSignedHashKey(something);

        }
    } catch (NameNotFoundException e1) {
        // TODO Auto-generated catch block
        Log.e("name not found", e1.toString());
    } catch (NoSuchAlgorithmException e) {

        Log.e("no such an algorithm", e.toString());
    } catch (Exception e) {
        Log.e("exception", e.toString());
    }
}
public void showSignedHashKey(String hashKey) {

    AlertDialog.Builder adb = new AlertDialog.Builder(this);
    adb.setTitle("Note Signed Hash Key");
    adb.setMessage(hashKey);
    adb.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {

        }
    });

    adb.show();
}

** Chame funcation getAppKeyHash () do seu método oncreate se você quiser um hash assinado e então faça o build assinado e instale o build e execute o hash key na caixa de diálogo, anote-o e atualize-o na conta dev facebook e comente essa função e faça outra APK assinado **


Para gerar o hash da chave de liberação, você precisa seguir alguns passos simples.

1) Baixe Openssl

2) Faça uma pasta openssl na unidade C

3) Extraia os arquivos Zip para esta pasta openssl criada no C Drive.

4) Copie o arquivo debug.keystore da pasta .android no meu caso (C: \ Users \ SYSTEM.android) e cole na pasta bin do JDK no meu caso (C: \ Arquivos de programas \ Java \ jdk1.6.0_05 \ bin)

5) Abra o prompt de comando e forneça o caminho da pasta JDK Bin no meu caso (C: \ Arquivos de programas \ Java \ jdk1.7.0_40 \ bin).

6) Copie o seguinte código e aperte enter

keytool -exportcert -alias abcd-keystore D: \ Projetos \ MyAppFolder \ keystore.txt | C: \ openssl \ bin \ openssl sha1 - binário | C: \ openssl \ bin \ openssl base64 ex - keytool -exportcert -alias (seu sing apk nome do alias entrar aqui como meu sinal apk alian nome é abcd) -keystore "assinado apk gerado keystore apth enter here" | "caminho da pasta bin openssl entrar aqui" sha1 - binary | "abre caminho pasta bin bin digite aqui" base64

7) Agora você precisa digitar a senha, Senha = (digite sua senha aqui)

8) você tem keystore que são usados ​​para liberar o hash da chave do aplicativo


Se sua senha = android está errado, em seguida, coloque sua senha do pc em que funciona para mim.

E para gerar keyHash tente esse link Here


Solução de uma linha para gerar para o facebook

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Tente passar a senha da chave e armazenar como parte do comando

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -keypass android -storepass android \
| openssl sha1 -binary \
| openssl base64

I. Criar key hash debug para facebook

Adicione o código para imprimir o hash da chave para o facebook

    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.google.shoppingvn", PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.i("KeyHash:",
                    Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }

II. Criar lançamento de hash chave para o facebook

  1. Faça o download de here.
  2. Faça uma pasta openssl na unidade C
  3. Extrair arquivos Zip para a pasta openssl
  4. Iniciar -> Executar: cmd (pressione enter)
  5. (pressione) cd C: \ Arquivos de programas \ Java \ jdk1.6.0_45 \ bin. Nota: C: \ Arquivos de programas \ Java \ jdk1.6.0_45 \ bin: é o caminho para a pasta jdk em seu computador
  6. (pressione) keytool -exportcert -alias gci -keystore D: \ pasta \ keystorerelease | C: \ openssl \ bin \ openssl sha1 -binary | C: \ openssl \ bin \ openssl base64. Nota: D: \ folder \ keystorerelease: é o caminho para o seu keystorerelease

  7. Digite a senha do keystore: esta é a senha quando sua chave de registro é liberada.

    Então você terá um hash de chave: jDehABCDIQEDWAYz5Ow4sjsxLSw =

  8. Entrar no Facebook. Acesso para gerenciar aplicativos. Cole o hash da chave no seu aplicativo em developers.facebook.com


Maneira mais simples de gerar chave hash.

Requisito: chave SHA1

Você pode encontrar a chave SHA1 executando signatureReport

Veja abaixo a imagem.

depois de executar o arquivo, sua saída será gerada contendo a chave sha1 necessária.

Então vá para http://tomeko.net/online_tools/hex_to_base64.php

e cole sua chave sha1

e finalmente você obterá o HashKey Requerido.





android-keystore