轉載請标明出處:http://blog.csdn.net/zhaoyanjun6/article/details/105344657
本文出自【趙彥軍的部落格】
方式一: 代碼生成
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import android.util.Base64;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* Created by ${zyj} on 2020/4/6.
*/
public class KeyHash {
/**
* 注意運作的時候,app需要正式的簽名
* @param context
*/
public static String getKeyHash(Context context) {
try {
PackageInfo info = null;
info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest messageDigest = null;
messageDigest = MessageDigest.getInstance("SHA");
messageDigest.update(signature.toByteArray());
String hs = Base64.encodeToString(messageDigest.digest(), Base64.DEFAULT);
return hs;
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
}
方式二:用apk簽名生成
第一步:擷取簽名
SHA1
值
https://blog.csdn.net/zhaoyanjun6/article/details/105341708
第二步:用
SHA1
生成
key hash
值
echo 22:0D:7A:78:BA:F2:B5:D6:0F:4A:00:34:7C:1C:94:47:7B:B8:F4:63 | xxd -r -p | openssl base64
輸出
方式三:用簽名的方式
keytool -exportcert -alias yiba -keystore C:\work\Key.jks | openssl sha1 -binary | openssl base64
注意:
- 1、這裡的 yiba 代表app簽名的别名,也就是 alias
- 2、C:\work\Key.jks 代表簽名的路徑,需要換成你簽名的路徑 如果你的電腦上沒有下載下傳 openssl 那麼你執行下面的代碼會出現 下面需要電腦下載下傳
庫openssl
下載下傳位址:http://gnuwin32.sourceforge.net/packages/openssl.htm
解壓下載下傳的檔案
cmd
指令行模式定位到
openssl
的
bin
目錄下