Android 通过应用包名获取MD5和SHA1值
来源:互联网 发布:卡罗拉双擎销量数据 编辑:程序博客网 时间:2024/06/06 00:06
每当我们在接入第三方sdk的时候,总是要上传一些应用签名文件的MD5和SHA1等等... 然而每次获取的时候都要输入命令获取,所以自己干脆写个应用来获取应用的签名岂不是更好?
其实微信是有提供这个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和源码地址:点击此处下载
阅读全文
1 0
- Android 通过应用包名获取MD5和SHA1值
- Android Studio获取 SHA1 和包名
- Android Studio获取MD5和SHA1值(应用签名)
- android获取应用的MD5,SHA1值
- android studio 获取sha1和md5值
- Android studio获取sha1和MD5值
- Android获取SHA1值和MD5
- Android studio 获取MD5和SHA1值
- Android Studio获取MD5和SHA1值
- Android获取SHA1和MD5值
- Android 获取 MD5 和 SHA1
- Android Studio 中获取SHA1和MD5(应用签名)
- 获取android应用签名证书的SHA1,MD5,SHA256值
- 查看获取MD5和SHA1值(应用签名)*
- Android Studio中如何查看获取MD5和SHA1值(应用签名)
- Android studio 查看应用MD5和SHA1值(应用签名)
- android studio 获取sha1值和MD5值
- Android Studio 发布APK以及获取SHA1和MD5值
- 第一篇博客
- 如何用C++递归来查找BST中的根节点的inorder successor
- MyBatis参数传入集合之foreach动态sql
- ORACLE中BLOB字段查询的方法
- 安装MySQL图解全过程
- Android 通过应用包名获取MD5和SHA1值
- 关于ListView添加onItemClick无反映的问题
- centos7安装telnet服务
- Unity+FairyGUI)自定义fgui界面基类
- Homogeneous Coordinates(齐次坐标)
- mysql中exists子查询
- C#Winform无标题窗口的拖放实现
- SPUtils
- 乘积最大codevs1017(noip2000)