轉載請標明出處: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
目錄下