摘要
- 在 OS X 中运行:
keytool -exportcert -alias [yourkeyalia] -keystore [yourkeystorepath] | openssl sha1 -binary | openssl base64
- 在 Windows 系统中运行:
keytool -exportcert -alias [yourkeyalia] -keystore [yourkeystorepath] | openssl sha1 -binary | opensslbase64
根据提示替换成你的路径,系统将生成包含 28 个字符的字符串。
示例:
- 在 OS X 中运行:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64```
* 在 Windows 系统中运行:
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%.android\debug.keystore | openssl sha1 -binary | opensslbase64```
注:
-alias 后只需写签名的文件名,不需要写.keystore 这个后缀。
使用代码获取hashkey:
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 (PackageManager.NameNotFoundException e) { }
catch (NoSuchAlgorithmException e) { }````
#####问题:
.jks的签名的命令是什么样的?