46 votes

Comment générer 11 clé de hh char pour Sms Retriever avec la signature de Google App

J'avais généré le 11 char de hachage à l'aide de l' AppSignatureHelper classe. Mais après le téléchargement de l'apk pour jouer au magasin, ils ont de hachage ne fonctionne plus. Et j'ai trouvé que le Jeu remplace la clé avec un autre qui est pourquoi le hachage est changé ainsi. Maintenant, je vais avoir de la difficulté à obtenir les 11 caractères clé de hachage.

Je ne sais pas comment utiliser les commandes données par Google. J'ai trouvé cette commande à partir d' ici

keytool -exportcert -alias MyAndroidKey -keystore MyProductionKeys.keystore | xxd -p | tr -d "[:space:]" | echo -n com.example.myapp `cat` | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

Depuis, Play App signature est activé pour mon application, je vais utiliser cette commande,

keytool -exportcert -keystore MyProductionKeys.keystore | xxd -p | tr -d "[:space:]" | echo -n com.example.myapp `cat` | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

J'ai remplacé keytool avec son chemin d'accès du dossier bin du JDK, mais alors il disait xxd n'a pas été reconnu donc j'ai téléchargé à partir d'un site web maintenant, il est dit, en tr n'est pas reconnu, je suppose qu'il va dire que pour l' cut ainsi.

Pardonnez-moi si cela vous semble trop noob de moi de vous le demander, mais comment puis-je résoudre ce problème?

Mise à JOUR: j'ai essayé la deuxième commande à partir de ci-dessus sur une machine linux, la commande a fonctionné et m'a donné 11 caractères, mais encore le SMS Retriever n'est pas de travail.

SOLUTION: Avec l'aide de Nick Fortescue réponse, j'ai téléchargé la DER fichier au format. Ensuite convertie en une .jks fichier à l'aide de la commande suivante

keytool -importcert -alias myalias -file deployment_cert.der -keystore certificate.jks -storepass mypassword

Ensuite effectué la première commande à partir de ci-dessus sur le certificat.jks et cela a fonctionné!

53voto

Redman Points 4834

Voici la guide étape par étape .

  1. Aller jouer à la console -> ouvrez l'app -> gestion des versions -> App Signature -> Télécharger le Certificat . Comme dans la capture d'écran ci-dessous

enter image description here

Cela vous donnera deployment_cert.der le fichier

  1. Convertir l' deployment_cert.der fichier .jks le fichier

utiliser la commande ci-dessous

keytool -importcert -alias YOUR_ALIAS -file deployment_cert.der -keystore certificate.jks -storepass YOUR_PASSWORD

Remplacer YOUR_ALIAS,VOTRE_MOTDEPASSE avec le vôtre qui est utilisé dans le fichier de stockage des clés . À la place de deployment_cert.der utiliser le chemin complet si nécessaire

Après avoir entré cette commande, il vous sera demander

Faire confiance à ce certificat? [non]: oui

type oui et cliquez sur entrer . Il va afficher un message

Le certificat a été ajouté à keystore

Cela va générer un nouveau fichier certificate.jks

  1. Maintenant dans le terminal, entrez la commande

    keytool -exportcert -alias YOUR_ALIAS -keystore certificate.jks | xxd -p | tr -d "[:space:]" | echo -n YOUR_PACKAGE `cat` | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

Remplacer YOUR_ALIAS,YOUR_PACKAGE avec le vôtre qui est utilisé dans le fichier de stockage des clés,projet . À la place de certificate.jks utiliser le chemin complet si nécessaire

il vous sera demander de mot de passe

Entrez le mot de passe du fichier de clés: monmotdepasse

entrez votre mot de passe et vous obtiendrez la valeur de hachage .

EDIT Pour les utilisateurs de MacOS:

Si vous utilisez mac os, vous pouvez installer sha256sum par l'installation de coreutils comme ceci:

brew install coreutils

Ou vous pouvez utiliser shasum -a 256 au lieu de sha256sum comme ceci:

keytool -exportcert -alias YOUR_ALIAS -keystore certificate.jks | xxd -p | tr -d "[:space:]" | echo -n YOUR_PACKAGE `cat` | shasum -a 256 | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

Les crédits de Abhinav Gupta et Op de cette question Farhan Farooqui et la réponse ci-dessus à partir de Nick Fortescue

11voto

michalbrz Points 1459

Par défaut les commandes bash n'avaient pas de travail pour moi et j'avais besoin de générer des hachages pour les locaux de stockage des clés et Google Play certificat, j'ai écrit mon propre script Ruby pour que: https://github.com/michalbrz/sms-retriever-hash-generator/blob/master/google_play_sign.rb

Puis générer le hachage avec Google Play, la signature est juste:

ruby google_play_sign.rb --package com.your.app --google-play-key deployment_key.der

deployment_key.der certificat téléchargé à partir de Google Play comme dans de Nick réponse.

Sous le capot, il transforme le Google Play cert dans le fichier de clés et de fait de ce que d'autres ont suggéré de commandes bash faire, mais l'enveloppe en quelque chose de plus facile à utiliser.

9voto

Nick Fortescue Points 7259

Dans les documents d'aide pour le Google Play App Signature , il a une section "Nouvelles Applications". L'étape 4 de cette section est:

Étape 4: Enregistrez votre application de la clé de signature de l'API fournisseurs Si votre application utilise une API, vous aurez besoin d'enregistrer le certificat de la clé de Google signes de votre application à des fins d'authentification. Cela se fait habituellement par le biais de l'empreinte du certificat.

Afin de trouver le certificat de la clé Google utilise pour re-signer votre APK pour la livraison:

  1. Connectez-vous à votre Jeu de la Console.
    1. Sélectionnez une application.
    2. Sur le menu de gauche, cliquez sur gestion de la mise en > Application de signature.
    3. À partir de cette page, vous pouvez copier le plus commun des empreintes digitales (MD5, SHA-1 et SHA-256) de votre application de signature de certificat. Si le fournisseur API nécessite un autre type d'empreintes digitales, vous pouvez également télécharger le certificat d'origine en format DER et le lancer à travers les outils de transformation que l'API fournisseur exige.

Télécharger le certificat d'origine dans DER format, puis utilisez votre commande sur le certificat.

0voto

MJahongir Points 136

essayer ce

remplacez 'Alias' par votre alias et 'keystorePath' par votre kestore. Aussi mettre le chemin droit de openssl.exe si son installé à un autre répertoire

-1voto

Noam a Points 136

J'ai trouvé toutes ces commandes et le processus lui-même un peu désordonné (j'ai aussi des projets avec 4 environnement avec 4 paquets différents), donc ce que j'ai fait est d'inclure le houte sur la charge utile du client lorsque le client demande un OTP, puis le serveur l'enregistrer (confiance sur les sapins t utiliser) pour un examen manuel du système de gestion du contenu. N'a pas trouvé d'aspect de sécurité en utilisant cette méthode

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X