用代码提取SHA1的方法
很多小伙伴都在项目当中用到了高德,其中一个问题就是SHA1怎么获取?
这里讲一个用代码提取SHA1的方法,下面贴上代码:
/* 获取高德地图的SHA1 */ public static String getSHA1(Context context) { try { PackageInfo info = context.getPackageManager().getPackageInfo( context.getPackageName(), PackageManager.GET_SIGNATURES); byte[] cert = info.signatures[0].toByteArray(); MessageDigest md = MessageDigest.getInstance("SHA1"); byte[] publicKey = md.digest(cert); StringBuffer hexString = new StringBuffer(); for (int i = 0; i < publicKey.length; i++) { String appendString = Integer.toHexString(0xFF & publicKey[i]) .toUpperCase(Locale.US); if (appendString.length() == 1) hexString.append("0"); hexString.append(appendString); hexString.append(":"); } String result = hexString.toString(); return result.substring(0, result.length() - 1); } catch (Exception e) { e.printStackTrace(); } return null; }
直接将上面那段代码贴到代码里面去就行了,不过要记住一点,released版本和debug版本的SHA1是不一样的,要分开获取,这一点在高德的sdk技术文档中都有说明的,我也就不多说了。