1、 去https://code.google.com/p/openssl-for-windows/downloads/list下载OpenSSL工具
2、解压OpenSSL到指定目录
3、将openssl.exe复制到JDK的bin文件夹下
4、将C盘下的.android里面的debug.keystore也复制粘贴到JDK的bin文件夹下
准备完毕,开始表演
1、 打开CMD ,路径设置到JavaJDK 的bin路径下,执行以下代码:
keytool -exportcert -alias androiddebugkey -keystore debug.keystore > c:\openssl\bin\debug.txt(为OpenSSL的路径)
密码是:android (执行完后在 openssl文件夹下生成了debug.txt文件)
2、打开CMD,路径设置到openssl文件夹下的bin目录执行以下代码:
openssl sha1 -binary debug.txt >debug_sha.txt
执行完后在openssl文件夹下生成了debug_sha.txt文件
3、继续执行以下代码:
openssl base64 -in debug_sha.txt >debug_base64.txt
执行完后在openssl文件夹下生成了debug_base64.txt文件
4、打开debug_base64.txt可得到KeyHash
获取正式签名的KeyHash只需要将上面的keystore的相关信息替换掉
其它套路
通过代码来获取:
try {
PackageInfo info = getPackageManager().getPackageInfo( getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String KeyHash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
Log.d("KeyHash:", "KeyHash:"+KeyHash);
Toast.makeText(this, "FaceBook HashKey:"+KeyHash, Toast.LENGTH_SHORT).show();
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}