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));

    }

日志输出:

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

我对这两个不同的哈希键感到困惑。现在我的问题是哪个密钥适合我的应用程序

我认为md.digest()在第一个和第二个方法调用时返回不同的值。

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 回答