1

コード :

// Add code to print out the key hash
PackageInfo info = getPackageManager().getPackageInfo("com.my.package", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());

        Log.d("KeyHash1:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        Log.d("KeyHash2:", Base64.encodeToString(md.digest(), Base64.DEFAULT));

    }

Logcat 出力:

02-21 10:07:55.957: D/KeyHash1:(2666): A0AFqS0kOUlvxvH1L3VCCrTXNY8=
02-21 10:07:55.967: D/KeyHash2:(2666): 2jmj7l5rSw0yVb/vlWAYkK/YBwk=

この2つの異なるハッシュキーと混同しています。私の質問は、私のアプリケーションにどのキーを使用するのが正しいかということです

md.digest()1回目と2回目のメソッド呼び出しで異なる値を返すと思います。

4

1 に答える 1

0

サー、ログで文字列をエンコードしています。

これは私のコードです。

md = MessageDigest.getInstance("SHA-256");
        md.update(text.getBytes("iso-8859-1"), 0, text.length());
        sha1hash = md.digest();
于 2013-02-21T12:29:23.997 に答える