Android 获取应用 MD5 SHA1 SHA256 签名信息

Isadora ·
更新时间:2024-09-21
· 549 次阅读

闲着没事儿写了个小 demo ,获取手机上已安装应用信息,系统应用和 非系统应用
MD5 SHA1 SHA256 签名信息 点击签名信息可复制到剪切板,
GitHub:https://github.com/sunan-n/GetAppInfo
如下图:
在这里插入图片描述

```java 主要就是这个方法,传参数进来获取相应的签名类型 信息 public static String getSignaturesInfo(Context context, String packageName, String tpye) { // //获取包管理器 PackageManager pm = context.getPackageManager(); //返回包括在包中的签名信息 int flags = PackageManager.GET_SIGNATURES; PackageInfo packageInfo = null; try { //获得包的所有内容信息类 packageInfo = pm.getPackageInfo(packageName, flags); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } //签名信息 Signature[] signatures = packageInfo.signatures; byte[] cert = signatures[0].toByteArray(); //将签名转换为字节数组流 InputStream input = new ByteArrayInputStream(cert); //证书工厂类,这个类实现了出厂合格证算法的功能 CertificateFactory cf = null; try { cf = CertificateFactory.getInstance("X509"); } catch (CertificateException e) { e.printStackTrace(); } //X509证书,X.509是一种非常通用的证书格式 X509Certificate c = null; try { c = (X509Certificate) cf.generateCertificate(input); } catch (CertificateException e) { e.printStackTrace(); } String hexString = null; try { //加密算法的类,这里的参数可以使MD4,MD5等加密算法 // MessageDigest md = MessageDigest.getInstance("SHA1"); MessageDigest md = MessageDigest.getInstance(tpye); //获得公钥 byte[] publicKey = md.digest(c.getEncoded()); //字节到十六进制的格式转换 hexString = byte2HexFormatted(publicKey); } catch (NoSuchAlgorithmException e1) { e1.printStackTrace(); } catch (CertificateEncodingException e) { e.printStackTrace(); } return hexString; }
作者:sunan_n



sha sha256 sha1 Android

需要 登录 后方可回复, 如果你还没有账号请 注册新账号