¿Cómo crear Android Facebook Key Hash?

182

No entiendo este proceso en absoluto. He podido navegar a la carpeta que contiene la herramienta clave en el SDK de Java. Aunque sigo recibiendo el error openssl no se reconoce como un comando interno o externo. El problema es que incluso si puedo hacer que esto funcione, ¿qué haría y con qué después?

Somk
fuente
si está utilizando la última facebook SDK y si putted su Facebook API perfectamente a continuación, cuando se hace clic en iniciar sesión inicio de sesión en Facebook y luego en su Logcat se imprime la tecla de almohadilla ..
Mehul Ranpara
para generar su hash de clave en su computadora local, ejecute la utilidad keytool de Java (que debería estar en la ruta de su consola) contra el almacén de claves de depuración de Android. Esto está, por defecto, en su directorio de inicio .android). En OS X, ejecute: keytool -exportcert -alias androiddebugkey -keystore ~ ​​/ .android / debug.keystore | openssl sha1 -binario | openssl base64 En Windows, use: - keytool -exportcert -alias androiddebugkey -keystore% HOMEPATH% \. android \ debug.keystore | openssl sha1 -binario | openssl base64
Rakesh
¿Por qué alguien querría crear una clave de depuración?
Anders Lindén
He generado el hash de la clave pero no sé dónde poner esa clave, ¿me guiarías? Estoy ejecutando Android Studio en Ubuntu.
Apurva

Respuestas:

242

Aquí está lo que tú necesitas hacer -

Descarga openSSl de Code Extract it. cree una carpeta: OpenSSL en C: / y copie el código extraído aquí.

detectar la ruta del archivo debug.keystore. Si no lo encontró, realice una búsqueda en C: / y use la Ruta en el comando en el siguiente paso.

detecte su ruta keytool.exe y vaya a ese símbolo del sistema dir / in y ejecute este comando en 1 línea-

$ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64

pedirá contraseña, ponga android eso es todo. obtendrás un hash de clave

coder_For_Life22
fuente
cuando pide una contraseña, ¿puedo poner lo que quiera?
Somk
55
@Max, la contraseña predeterminada es android.
jamapag
2
hash clave no coincide con ningún hash clave almacenado android, no funciona
Boldijar Paul
1
Primero cree un almacén de claves yendo a Build -> Build Apk desde su estudio. proporcione un nombre y contraseña, etc. Almacénelo como un archivo .jks en una carpeta de fácil acceso. Ahora copie la ruta y genere la clave reemplazando esa ruta en la respuesta mencionada anteriormente.
buggydroid
1
Me muestra un error: "... Las expresiones solo se permiten como el primer elemento de una tubería. En la línea: 1 char: 184 ... Token inesperado 'sha1' en expresión o enunciado ... Las expresiones solo se permiten como el primer elemento de una tubería ... Token inesperado 'base64' en expresión o declaración. + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId: ExpressionsMustBeFirstInPipeline "
desarrollador de Android
175

Para Linux y Mac

Terminal abierta:

Para la compilación de depuración

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

Encontrará debug.keystore en la carpeta ".android". Cópielo y péguelo en el escritorio y ejecute el comando anterior.

Para liberar Build

keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath> | openssl sha1 -binary | openssl base64

NOTA: Asegúrese de que en ambos casos solicite una contraseña. Si no solicita una contraseña, significa que algo está mal en el comando. La contraseña para debug.keystore es " android " y para la liberación debe ingresar la contraseña que estableció durante la creación del almacén de claves .

Biraj Zalavadia
fuente
3
Para que quede claro, la contraseña está vacía. Simplemente presione <enter> cuando se le solicite.
Tom Redman
He generado el hash de la clave pero no sé dónde poner esa clave, ¿me guiarías? Estoy ejecutando Android Studio en Ubuntu.
Apurva
1
Esta nota: "NOTA: Asegúrese de que en ambos casos solicite una contraseña. Si no solicita una contraseña, significa que algo está mal en el comando". fue esencial para resolver el problema
Bleno Silva
Gracias por salvar mi vida. estoy escribiendo mi contraseña de Mac para la contraseña del almacén de claves todo el tiempo y me di cuenta de que estaba mal
Lucky Angelo
1
Incluso pedir una contraseña no significa que todo esté bien (contraseña incorrecta, alias de clave incorrecto). Corre keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath>solo al principio, para ver si todo está bien. Además, cuando se canaliza, keytool está en modo no interactivo y muestra la contraseña en texto sin formato cuando la ingresa. Por lo tanto, es mejor que escriba un pequeño script que ejecute los comandos por separado.
Pierre
98

Por favor intente esto:

public static void printHashKey(Context pContext) {
        try {
            PackageInfo info = pContext.getPackageManager().getPackageInfo(pContext.getPackageName(), PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                String hashKey = new String(Base64.encode(md.digest(), 0));
                Log.i(TAG, "printHashKey() Hash Key: " + hashKey);
            }
        } catch (NoSuchAlgorithmException e) {
            Log.e(TAG, "printHashKey()", e);
        } catch (Exception e) {
            Log.e(TAG, "printHashKey()", e);
        }
    }
Maddy
fuente
He generado el hash de la clave pero no sé dónde poner esa clave, ¿me guiarías? Estoy ejecutando Android Studio en Ubuntu.
Apurva
este es el camino a seguir
Tintinabulator Zea
1
Esto funciona si llamas a pContext.getPackageInfo. O simplemente elimínelo de una función y llámelo onCreate de cualquier actividad.
Dpedrinha
1
Esto ahora parece ser getPackageManager (). GetPackageInfo ([your-package_name], PackageManager.GET_SIGNATURES)
Hasta
@Apurva Puede ponerlo en Android SharedPreferences en caso de tener un uso posterior de eso.
Maddy
49

OpenSSL: debe instalarlo si no viene preinstalado con su sistema operativo (por ejemplo, Windows no lo tiene preinstalado) . La instalación depende de su sistema operativo (para Windows, consulte el enlace proporcionado por coder_For_Life22).

La forma más fácil sin perder el tiempo es copiando el archivo binario openssl.exe a su ruta de keytool si está en Windows. Si no desea hacer eso, debe agregarlo a su PATHvariable de entorno. Luego ejecute el comando provisto en los documentos.

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

Tenga en cuenta que el argumento posterior -keystoreapunta a su almacén de claves de depuración. Esta ubicación también depende de su sistema operativo. Debe estar en una de las siguientes ubicaciones:

  • Windows Vista o 7 - C: \ Users \ .android \ debug.keystore
  • Windows XP - C: \ Documents and Settings \ .android \ debug.keystore
  • OS X y Linux - ~ / .android / debug.keystore

Si hizo todo bien, se le pedirá una contraseña. Eso es androidpara el certificado de depuración. Si la contraseña es correcta, la consola imprime un hash (caracteres y números algo aleatorios).

Tómelo y cópielo en el android key hashcampo dentro de las preferencias de su aplicación en Facebook. Para llegar allí, vaya a developers.facebook.com/apps , seleccione su aplicación, vaya Edit settingsy desplácese hacia abajo. Después de eso, espere unos minutos hasta que los cambios surtan efecto.


fuente
Ejecuté esto en cmd y generó una lista muy larga de caracteres que parecen un hash que termina con un signo = luego nada $ keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ .android \ debug.keystore" | "C: \ OpenSSL \ bin \ openssl" sha1 -binary | "C: \ OpenSSL \ bin \ openssl" base64
Somk
Suena correcto Solo lo probé en mi máquina, tenía 28 caracteres para mí, solo para darle una idea. Ahora solo cópialo y estarás bien. :)
Sin embargo, no se me solicitó usar el pharse de Android. Lo siento, ¿estoy siendo lenta?
Somk
Para ser honesto, no estoy seguro de por qué no te lo pidieron. Pero me parece correcto. Quiero decir, si hubieras hecho algo mal, debería haber un mensaje de error. Simplemente cópielo y vea si funciona. Puede probar algunas de las consultas de gráficos con Graph API Explorer . Seleccione su aplicación en la parte superior y vea si obtiene resultados válidos. Debería escupir un error si hay algo mal. Editar: Y nada de malo con ser lento. No tenemos prisa. :)
24

para generar su hash de clave en su computadora local, ejecute la utilidad keytool de Java (que debería estar en la ruta de su consola) contra el almacén de claves de depuración de Android. Esto está, por defecto, en su directorio de inicio .android). En OS X, ejecute:

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

En Windows, use: -

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

Espero que esto te ayudará

Ref - desarrollador sitio de facebook

Rakesh
fuente
He generado el hash de la clave pero no sé dónde poner esa clave, ¿me guiarías? Estoy ejecutando Android Studio en Ubuntu.
Apurva
19

Simplemente puede usar una línea javascript en la consola del navegador para convertir una clave de mapa hexadecimal a base64. Abrir la consola de última versión del navegador (F12 en ventanas) y pegue el código y reemplazar el SHA-1, SHA-256mapa hexagonal que Google Play ofrece bajo Release Managment> App signing:

> btoa('a7:77:d9:20:c8:01:dd:fa:2c:3b:db:b2:ef:c5:5a:1d:ae:f7:28:6f'.split(':').map(hc => String.fromCharCode(parseInt(hc, 16))).join(''))
< "p3fZIMgB3fosO9uy78VaHa73KG8="
Christos Lytras
fuente
1
Eres un salvavidas, gracias
Yusuf Adeyemo
SHA-1 fue el indicado.
Travo
19

Aquí hay detalles completos (para Windows)

1. Descargue OpenSSl 3ro o 4to (con e funcionará mejor) basado en su sistema de 32 bits o 64 bits.

2. Extraiga el zip descargado dentro del directorio C

3. Abra la carpeta extraída en bin y copie la ruta, debería ser algo como C:\openssl-0.9.8k_X64\bin\openssl (agregar \ openssl al final)

4) (Obtenga la ruta a la carpeta bin de Jdk, si sabe cómo, ignore esto).

Abra el archivo ~ de Android studio ~ Estructura del proyecto (ctrl + alt + shift + s), seleccione la ubicación del SDK en el panel lateral izquierdo, copie la ubicación del JDK y agregue / bin

Entonces la ubicación final de JDK será como C:\Program Files\Android\Android Studio\jre\bin

estamos siguiendo este método para obtener la ubicación de Jdk porque podrías usar jdk incrustado como yo

ingrese la descripción de la imagen aquí

ahora tiene la ubicación OpenSSl y la ubicación JDK

5. ahora necesitamos la ubicación del almacén de claves de depuración, para eso abrir C ~> Usuarios ~> YourUserName ~> .android debería haber un nombre de archivo debug.keystore, ahora copie la ubicación de la ruta, debería ser algo así como

C:\Users\Redman\.android\debug.keystore

6. ahora abra el símbolo del sistema y escriba command

cd YourJDKLocationFromStep4  

en mi caso

 cd "C:\Program Files\Android\Android Studio\jre\bin"

7. ahora construya el siguiente comando

keytool -exportcert -alias androiddebugkey -keystore YOURKEYSTORELOCATION | YOUROPENSSLLOCATION sha1 -binary | YOUROPENSSLLOCATION base64

en mi caso el comando se verá así

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Redman\.android\debug.keystore" | "C:\openssl-0.9.8k_X64\bin\openssl" sha1 -binary | "C:\openssl-0.9.8k_X64\bin\openssl" base64

ahora ingrese este comando en el símbolo del sistema, si alguna vez hizo lo correcto, se le pedirá una contraseña (la contraseña es Android)

Enter keystore password:  android

eso es todo, se te dará el Key Hash, solo cópialo y úsalo

Para KeyHash firmado, construya el siguiente comando

keytool -exportcert -alias YOUR_ALIAS_FOR_JKS -keystore YOUR_JKS_LOCATION | YOUROPENSSLLOCATION sha1 -binary | YOUROPENSSLLOCATION base64

ingrese su contraseña de almacén de claves, si ingresa una contraseña incorrecta, obtendrá KeyHash incorrecto

NOTA

Si por alguna razón da error en alguna ruta, envuélvala entre comillas dobles. Además, Windows Power Shell no funcionaba bien para mí, usé git bash (o uso del símbolo del sistema).

ejemplo

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Redman\.android\debug.keystore" | "C:\openssl-0.9.8k_X64\bin\openssl" sha1 -binary | "C:\openssl-0.9.8k_X64\bin\openssl" base64
Manohar Reddy
fuente
1
¡Muchas gracias, esta es una guía muy detallada para principiantes!
Pablo Quemé
@TamimProduction intente el mismo procedimiento anterior con la versión k de openssl y vea code.google.com/archive/p/openssl-for-windows/downloads
Manohar Reddy
@TamimProduction si ingresa una contraseña incorrecta, devolverá keyhash incorrecto. ¿también construiste el apk nuevamente después de eliminar el almacén de claves?
Manohar Reddy
@TamimProduction descargue e instale la aplicación de Facebook, inicie sesión en la aplicación de Facebook. abre tu aplicación y haz login en Facebook. Le dará hash clave en la aplicación de Facebook, verifique si es igual al suyo
Manohar Reddy
Continuemos esta discusión en el chat .
Tamim Attafi
16

También hay una solución corta. Simplemente ejecute esto en su aplicación:

FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this));

Uno más largo que no necesita FB SDK (basado en una solución aquí ):

public static void printHashKey(Context context) {
    try {
        final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
        for (android.content.pm.Signature signature : info.signatures) {
            final MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            final String hashKey = new String(Base64.encode(md.digest(), 0));
            Log.i("AppLog", "key:" + hashKey + "=");
        }
    } catch (Exception e) {
        Log.e("AppLog", "error:", e);
    }
}

El resultado debe terminar con "=".

desarrollador de Android
fuente
1
Noté que mi hash clave tiene una '_' que no está permitida por FB. Para usar el hash tuve que cambiarlo a '/'.
Abdelalim Hassouna
La función de Facebook devolvió mi clave ya -AAAAAAAA_AAAAAA-AAAAAAAAAAque Facebook no lo permite, printHashKey devolvió la clave en un formato válido+AAAAAAAA/AAAAAA+AAAAAAAAAA=
GrafOrlov
@GrafOrlov Qué extraño. Tal vez tienen un error en alguna nueva versión de FB SDK. Deberías informarles al respecto.
Desarrollador de Android
9

Para ventanas:

  1. abrir símbolo del sistema y pegar debajo del comando

keytool -exportcert -alias androiddebugkey -keystore% HOMEPATH% .android \ debug.keystore | openssl sha1 -binario | openssl base64

  1. Ingrese la contraseña: android -> Presione Enter

  2. Copiar clave de hash generada -> Inicie sesión en Facebook con su cuenta de desarrollador

  3. Vaya a su aplicación de Facebook -> Configuración -> Pegar clave de hash en la opción "clave hash" -> guardar cambios.

  4. Ahora pruebe su aplicación de Android con Facebook Iniciar sesión / Compartir, etc.

swiftBoy
fuente
He generado el hash de la clave pero no sé dónde poner esa clave, ¿me guiarías? Estoy ejecutando Android Studio en Ubuntu.
Apurva
Hola, puedo generar la clave hash a través del código en mi actividad principal, pero esa clave hash generada solo funciona en un solo dispositivo. Cuando instalo el mismo apk en otro dispositivo y lo ejecuto, muestra un error de clave hash no válido. ¿Hay algo que me falta?
Deepak
8

Desde API 26, puede generar sus HASH KEYS utilizando el siguiente código en KOTLIN sin necesidad de Facebook SDK.

fun generateSSHKey(context: Context){
    try {
        val info = context.packageManager.getPackageInfo(context.packageName, PackageManager.GET_SIGNATURES)
        for (signature in info.signatures) {
            val md = MessageDigest.getInstance("SHA")
            md.update(signature.toByteArray())
            val hashKey = String(Base64.getEncoder().encode(md.digest()))
            Log.i("AppLog", "key:$hashKey=")
        }
    } catch (e: Exception) {
        Log.e("AppLog", "error:", e)
    }

}

ingrese la descripción de la imagen aquí

Hanny
fuente
Quiere decir que coloco su código en class MainActivity: FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) GeneratedPluginRegistrant.registerWith(this) } }
asdfasdf
6

Así es como obtuve mi:

private class SessionStatusCallback implements Session.StatusCallback {
        @Override
        public void call(Session session, SessionState state, Exception exception) {

            if (exception != null) {
                new AlertDialog.Builder(FriendActivity.this)
                        .setTitle(R.string.login_failed_dialog_title)
                        .setMessage(exception.getMessage())
                        .setPositiveButton(R.string.ok_button, null)
                        .show();
            }

Entonces, cuando intente ingresar sin la clave, se producirá una excepción. Facebook puso la tecla DERECHA en esta excepción. Todo lo que necesitas hacer es copiarlo.

Valikpon
fuente
He generado el hash de la clave pero no sé dónde poner esa clave, ¿me guiarías? Estoy ejecutando Android Studio en Ubuntu.
Apurva
6

Si ya ha subido la aplicación a Play Store, puede generar Hash Key de la siguiente manera:

1) Ir a Administración de versiones aquí

2) Seleccione Release Management -> App Signing

3) Puede ver la clave SHA1 en formato hexadecimal Certificado de firma de la aplicación.


4) Copie el SHA1 en formato hexadecimal y conviértalo en formato base64, puede usar este enlace para hacerlo sin el SHA1: parte del hexadecimal.


5) Vaya a la consola de desarrollador de Facebook y agregue la clave (después de convertir a la base 64) en la configuración -> básico -> hashes clave.

SumiSadiq
fuente
5

Para facilitar el enlace tutorial vedio para generar KeyHash aquí

Descargar openssl desde AQUÍ

Arpit Patel
fuente
3

Descargar open ssl :

Luego agregue openssl \ bin a las variables del sistema de ruta:

Mi computadora -> propiedades -> Configuraciones avanzadas -> Avanzado -> Variables del sistema -> en las variables del sistema encontrar ruta y agregar esto a sus terminaciones:; yourFullOpenSSLDir \ bin

Ahora abra una línea de comando en su carpeta jdk \ bin C: \ Archivos de programa \ Java \ jdk1.8.0_40 \ bin (en Windows mantenga presionada la tecla Mayús y haga clic derecho -> abrir línea de comando aquí) y use:

keytool -exportcert -alias keystorealias -keystore C:\yourkeystore\folder\keystore.jks | openssl sha1 -binary | openssl base64

Y copie el número de 28 longitudes que genera después de dar la contraseña.

sagits
fuente
No he visto que la respuesta original ya tenga el enlace openssl. Pero sigue siendo útil para la variable del sistema.
cede el
He generado el hash de la clave pero no sé dónde poner esa clave, ¿me guiarías? Estoy ejecutando Android Studio en Ubuntu.
Apurva
Por supuesto, ¿estás seguro de que has generado el número de longitud 28? Si es así, ahora tiene que ir al sitio de desarrolladores de Facebook (buscar en Google) y crear una nueva aplicación, en la configuración, puede agregar una nueva aplicación de Android, allí pega su keyhash y el nombre de su actividad (donde se encuentra el código de inicio de sesión) ) También hay un tutorial al respecto en Facebook
sagits
Gracias por la rápida respuesta, lo intentaré en breve
Apurva
3

Ejecute esto en su aplicación:

FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this)+"=");

O esto:

public static void printHashKey(Context context) {
    try {
        final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
        for (android.content.pm.Signature signature : info.signatures) {
            final MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            final String hashKey = new String(Base64.encode(md.digest(), 0));
            Log.i("AppLog", "key:" + hashKey + "=");
        }
    } catch (Exception e) {
        Log.e("AppLog", "error:", e);
    }
}

Y luego mira los registros.

El resultado debe terminar con "=".

La solución se basa en aquí y aquí .

desarrollador de Android
fuente
3

EASY WAY -> ¡No instales openssl -> USE GIT BASH!

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

La contraseña predeterminada es "android"

La mayoría de nosotros tenemos instalado Git Bash, así que esta es mi forma favorita.

Dmitri R117
fuente
3

esto también ayudará a los recién llegados.

simplemente agregando más detalles a la respuesta de @ coder_For_Life22.

Si esta respuesta te ayuda, no te olvides de votar. Nos motiva.

para esto, ya debe conocer la ruta del archivo y la contraseña del almacén de claves de la aplicación;

en este ejemplo, considere que la clave está almacenada en "c: \ keystorekey \ new.jks"

1. abra esta página https://code.google.com/archive / p / openssl-for-windows / downloads

2. descargue el archivo zip de 32 o 64 bits según su sistema operativo Windows.

3. extraiga el archivo descargado donde quiera y recuerde la ruta.

4. para este ejemplo consideramos que ha extraído la carpeta en la carpeta de descarga.

entonces la dirección del archivo será "C: \ Users \ 0 \ Downloads \ openssl-0.9.8e_X64 \ bin \ openssl.exe";

5. ahora en el teclado presione windows + r botón.

6. Esto abrirá el cuadro de ejecución.

7. escriba cmd y presione Ctrl + Shift + Enter .

8. Esto abrirá el símbolo del sistema como administrador.

9. navegue hasta la carpeta bin de java:

si utiliza jre proporcionado por Android Studio, encontrará la ruta de la siguiente manera:
a. Abra el estudio de Android.
si. archivo-> estructura del proyecto
c. en el panel izquierdo, haga clic en 'Ubicación del SDK'
d. en el panel derecho, debajo de 'ubicación JDK' está su ruta jre.
mi. agregue "\ bin" al final de esta ruta ya que el archivo "keytool.exe", que necesitamos, está dentro de esta carpeta.
para este ejemplo considero,
"C: \ Archivos de programa \ Java \ jre-10.0.2 \ bin"
si ha instalado 32bit java, estará en
"C: \ Archivos de programa (x86) \ Java \ jre-10.0.2 \ bin"
10. ahora con las rutas anteriores, ejecute el comando de la siguiente manera:

keytool -exportcert -alias androiddebugkey -keystore "c:\keystorekey\new.jks" | "C:\Users\0\Downloads\openssl-0.9.8e_X64\bin\openssl.exe" sha1 -binary |"C:\Users\0\Downloads\openssl-0.9.8e_X64\bin\openssl.exe" base64
  1. Se le pedirá una contraseña, proporcione la contraseña que ha proporcionado al crear la clave del almacén de claves.

    !!!!!! esto te dará la llave

errores: si obtiene:
---
'keytool' no se reconoce como un comando interno o externo
---
esto significa que Java está instalado en otro lugar.

sifr_dot_in
fuente
3

paso 1-> C: \ Archivos de programa \ Java \ jdk1.6.0_43 \ bin>

Paso 2-> keytool -list -v -keystore C: \ Users \ leon \ .android \ debug.keystore -alias androiddebugkey -storepass android -keypass android

obtuvo el valor SHA1 haga clic en este enlace u convierta su valor SHA1 en HASH KEY

Estoy 100% seguro de que este enlace te ayudará

naveen pandi
fuente
3

Manera fácil

Al usar este sitio web , puede obtener Hash Key al convertir la clave SHA1 en Hash Key para Facebook.

Sai Gopi N
fuente
2

Puede obtener todas sus huellas digitales de https://console.developers.google.com/projectselector/apis/credentials
y usar este código de Kotlin para convertirlo en keyhash:

fun main(args: Array<String>) {
    listOf("<your_production_sha1_fingerprint>",
            "<your_debug1_sha1_fingerprint>",
            "<your_debug2_sha1_fingerprint>")
            .map { it.split(":") }
            .map { it.map { it.toInt(16).toByte() }.toByteArray() }
            .map { String(Base64.getEncoder().encode(it)) }
            .forEach { println(it) }
}
Alexmelyon
fuente
1

https://developers.facebook.com/docs/android/getting-started/

4.19.0 - 25 de enero de 2017

Facebook SDK

Modificado

Facebook SDK ahora se inicializa automáticamente cuando se inicia la aplicación. En la mayoría de los casos, ya no se necesita una llamada manual a FacebookSDK.sdkInitialize (). Consulte la guía de actualización para más detalles.

Para depurar

try {
    PackageInfo info = getPackageManager().getPackageInfo(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));
    }
} catch (NoSuchAlgorithmException e) {
    e.printStackTrace();
} catch (Exception e) {
    e.printStackTrace();
}
Ketan Ramani
fuente
1

Simplemente ejecute este código en su OnCreateView o OnStart Actvity y esta función le devolverá la clave de desarrollo Hash .

private String generateKeyHash() {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = (MessageDigest.getInstance("SHA"));
            md.update(signature.toByteArray());
            return new String(Base64.encode(md.digest(), 0));
        }
    }catch (Exception e) {
        Log.e("exception", e.toString());
    }
    return "key hash not found";
}
Hasib Akter
fuente
0

Estaba teniendo el mismo problema exacto, no me pedían una contraseña y parece que tenía la ruta incorrecta para el archivo del almacén de claves.

De hecho, si la herramienta de claves no encuentra el almacén de claves que ha establecido, creará una y le dará la clave incorrecta ya que no está utilizando la correcta.

La regla general es que si no se le solicita una contraseña, se genera la clave incorrecta.

Nick Tsitlakidis
fuente
He generado el hash de la clave pero no sé dónde poner esa clave, ¿me guiarías? Estoy ejecutando Android Studio en Ubuntu.
Apurva
0

Puedes usar este apk

1.first install the app from the Google play store
2.install the above apk
3.launch the apk and input the package name of your app
4.then you will get the hash code you want
armnotstrong
fuente
@Elynad Es chino: D
armnotstrong
0

keytool -exportcert -alias androiddebugkey -keystore "C: \ Users ** Deepak **. android \ debug.keystore" | " C: \ Users \ Deepak \ ssl \ bin \ openssl" sha1 -binary | " C: \ Usuarios \ Deepak \ ssl \ bin \ openssl" base64

2 Cambios en este comando anterior 1.Deepak === Reemplazar por su sistema NOMBRE DE USUARIO 2.C: \ Users \ Deepak \ ssl === responda su ruta Open SSL

ejecuta este comando y obtén resultados como este

C: \ Users \ Deepak> keytool -exportcert -alias androiddebugkey -keystore "C: \ Users \ D eepak.android \ debug.keystore" | "C: \ Users \ Deepak \ ssl \ bin \ openssl" sha1 -binary | "C: \ Users \ Deepak \ ssl \ bin \ openssl" base64 Ingrese la contraseña del almacén de claves: ****** ga0RGNY ****************** =

Deepak Parmar
fuente