3

Facebook をアプリに実装して、ユーザーのウォールにコンテンツを送信したり、ステータスを更新したりできるようにしようとしています。

そのため、ダウンロードした後、キーストア ファイルを使用してキーを取得するように言われました。私は勇気を出して独自のキーストア ファイルを作成し (後で公開するため)、成功しました。

ファイルを作成した後、そこからキーを取得しようとしてさまざまな問題が発生しましたが、keytool/コマンドプロンプトからコマンドを入力すると、キーストアのパスワードを尋ねられました...

最初に設定したパスワードを入力した後、奇妙なASCII記号と文字、およびその途中にあるキーストアの詳細だけが表示されます。何がうまくいかないのですか??

更新: わかりました。テキストを正しく表示するには、OpenSSL を使用する必要があるかもしれません。OpenSSL をインストールしましたが、それを使用してハッシュ コードを取得するにはどうすればよいですか?

4

4 に答える 4

4
  1. Opensslを次の場所からダウンロードします:http ://code.google.com/p/openssl-for-windows/downloads/list

  2. Cドライブにopensslフォルダを作成します

  3. Zipファイルをopensslフォルダーに抽出します

  4. keytool実行可能ファイルが存在するディレクトリがパス上にあることを確認してください。(たとえば、私のWindows 7マシンでは、C:\ Program Files(x86)\ Java \ jre6 \ binにあります。)
  5. cmdを開いて貼り付けます。

    keytool -exportcert -alias androiddebugkey -keystore〜/ .android / debug.keystore | C:\ openssl \ bin \ openssl sha1 -binary | C:\ openssl \ bin \ openssl base64

ハッシュコードを受け取る必要がある場合は、passwordandroidと入力します

于 2012-11-15T03:21:54.753 に答える
3

元の方法では失敗するため、私は常に Linux でこの方法を使用します。

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore > key.out
cat key.out | openssl sha1 -binary > key.bin
cat key.bin | openssl base64

Facebook アプリケーションのページ モバイル、Android セクションで入力する必要があるキーを取得します。アプリに署名するために異なるキートーアを使用するたびに、Facebook ページでもキーを変更する必要があります。

于 2011-06-29T09:02:08.843 に答える
0

最良の方法。

*try { PackageInfo info = getPackageManager().getPackageInfo( "あなたのパッケージ名", PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); Log.d("あなたのタグ", Base64.encodeToString(md.digest(), Base64.DEFAULT)); } } catch (NameNotFoundException e) {} catch (NoSuchAlgorithmException e) { }*

openssl が間違ったキーハッシュを提供する場合があります。

于 2013-11-07T15:16:03.427 に答える
0

以下のコードを使用して、ハッシュ キーを取得できます。

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 (NameNotFoundException e) {
   Log.e("name not found", e.toString());
  } catch (NoSuchAlgorithmException e) {
   Log.e("no such an algorithm", e.toString());
  }

参照 :

http://limbaniandroid.blogspot.com/2013/04/how-to-get-hash-key-for-integarte.html

于 2014-03-23T06:25:41.027 に答える