Android 通过应用包名获取MD5和SHA1值
2017-08-15 16:13
387 查看
每当我们在接入第三方sdk的时候,总是要上传一些应用签名文件的MD5和SHA1等等... 然而每次获取的时候都要输入命令获取,所以自己干脆写个应用来获取应用的签名岂不是更好?
其实微信是有提供这个APP的,但是比较坑的一点是它获取到的值竟然不能复制。。。而且每次去微信网站找也挺费劲的,隐藏的特别深。所以就打算自己写一个,其实很早以前就写过一次,只是当时以为用的不是特别多,就没上传到csdn,导致每次需要的时候找不到。
通过包名获取应用签名其实Android直接就有提供的API,通过PackageManager这个管理类来获取到PackageInfo,再通过PackageInfo获取到Signature数组中的第一个元素。所有的签名信息都在Signature中保存。直接看代码吧,调用这个方法传入包名就可以获取到应用MD5和SHA1签名
上面那个方法里面会用到下面toHextring方法
toHextring() 会调用byte2Hex()方法,byte2Hex()这个方法就是把byte转换为high和low字符,最终返回一个字符串
到此整个获取应用签名的代码就写完了----end
获取签名的apk和源码地址:点击此处下载
其实微信是有提供这个APP的,但是比较坑的一点是它获取到的值竟然不能复制。。。而且每次去微信网站找也挺费劲的,隐藏的特别深。所以就打算自己写一个,其实很早以前就写过一次,只是当时以为用的不是特别多,就没上传到csdn,导致每次需要的时候找不到。
通过包名获取应用签名其实Android直接就有提供的API,通过PackageManager这个管理类来获取到PackageInfo,再通过PackageInfo获取到Signature数组中的第一个元素。所有的签名信息都在Signature中保存。直接看代码吧,调用这个方法传入包名就可以获取到应用MD5和SHA1签名
private String getApplicationPackage(String packageName) { try { // 通过包管理器获取指定包名包含签名的信息 Signature signature = mPackageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES).signatures[0]; MessageDigest messageDigestMd5 = MessageDigest.getInstance("MD5"); MessageDigest messageDigestSHA1 = MessageDigest.getInstance("SHA1"); // 通过 MessageDigest这个类来分别取出 Signature中存储的MD5和SHA1 messageDigestMd5.update(signature.toByteArray()); messageDigestSHA1.update(signature.toByteArray()); // 把MessageDigest中存储的md5和sha1转为字符串 String md5 = toHextring(messageDigestMd5.digest()); String sha1 = toHextring(messageDigestSHA1.digest()); return "md5 = "+md5+ "\n sha1 = " + sha1; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); return "未找到这个包名" ; } catch (NoSuchAlgorithmException e) { e.printStackTrace(); return "未找到对应的算法" ; } }
上面那个方法里面会用到下面toHextring方法
private String toHextring(byte[] block) { StringBuffer buf = new StringBuffer(); for (byte aBlock : block) { byte2Hex(aBlock, buf); } return buf.toString(); }
toHextring() 会调用byte2Hex()方法,byte2Hex()这个方法就是把byte转换为high和low字符,最终返回一个字符串
private void byte2Hex(byte b, StringBuffer buf) { char[] hexChars = {'0','1' ,'2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; int high = ((b & 0xf0) >> 4); int low = (b & 0x0f); buf.append(hexChars[high]); buf.append(hexChars[low]); }
到此整个获取应用签名的代码就写完了----end
获取签名的apk和源码地址:点击此处下载
相关文章推荐
- android获取应用的MD5,SHA1值
- Android Studio|Eclipse 中如何查看获取MD5和SHA1值(应用签名)
- AndroidStudio 中如何查看获取MD5和SHA1值(应用签名)
- Android keystore 的MD5、SHA1值获取方法
- 通过ADT查看开发环境Android签名证书的md5和sha1值
- Android 如何获取自己应用的SHA1值(使用keytool)
- Android开发之通过包管理器获取安装应用信息
- 获取android应用签名证书(打包APK用到的那个文件)的SHA1,MD5,SHA256值
- 获取android应用签名证书(打包APK用到的那个文件)的SHA1,MD5,SHA256值
- 【Android应用开发】-(17)获取Google天气预报通过Xml和JSON解析数据
- android 一个应用去获取另一个应用assets下面的资源通过框架代码桥梁------项目实战成功案例
- AndroidStudio 中如何查看获取MD5和SHA1值(应用签名)
- Android 5.0以上通过UsageStatsManager类 获取应用使用情况(精品)
- 想在自己的android应用中获得当天的天气情况,这该怎么做呢?不用担心。中国国家气象局提供了获取所在城市天气预报信息接口。通过这个接口,我们就可以获取天气信息了。
- 获取android应用签名证书的SHA1,MD5,SHA256值
- Android实现通过浏览器点击链接打开本地应用(APP),并获取到传递的数据
- 【Android工具类】在代码中如何获取应用签名及sha1值
- 通过控制台获取Android app签名的sha1值
- ]获取android应用的MD5签名
- 查看获取MD5和SHA1值(应用签名)*