转载请标明出处: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
目录下