android读取应用签名信息
来源:互联网 发布:淘宝能在1688 编辑:程序博客网 时间:2024/05/22 17:29
1.命令方式
$ keytool -list -v -keystore "keystore文件路径"
输入以上命令,需要输入签名文件口令(密码请联系开发人员)即可查看。
2.本应用内实现方式
调用getCertificateFingerprint
方法,type为”MD5”,”SHA1”,”SHA256”。返回值为签名指纹对应类型串。
/** * * @param context * @param type * [MD5,SHA1,SHA256] * @return */ public static String getCertificateFingerprint(Context context, String type) { // 获取包管理器 PackageManager pm = context.getPackageManager(); // 在用其他包名的前提是,此方法传递的参数Context应该是对应包的上下文。 String packageName = context.getPackageName();// 这里也可直接使用指定包名 // 返回包括在包中的签名信息 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,SHA1等加密算法 MessageDigest md = MessageDigest.getInstance(type); // 获得公钥 byte[] publicKey = md.digest(c.getEncoded()); // 字节到十六进制的格式转换 hexString = byte2HexFormatted(publicKey); } catch (NoSuchAlgorithmException e1) { e1.printStackTrace(); } catch (CertificateEncodingException e) { e.printStackTrace(); } return hexString; } /** * 将获取到得编码进行16进制转换 * * @param arr * @return */ private static String byte2HexFormatted(byte[] arr) { StringBuilder str = new StringBuilder(arr.length * 2); for (int i = 0; i < arr.length; i++) { String h = Integer.toHexString(arr[i]); int l = h.length(); if (l == 1) h = "0" + h; if (l > 2) h = h.substring(l - 2, l); // 这里做了大写转换处理,比较时请转换或者使用IgnoreCase忽略大小写 str.append(h.toUpperCase()); if (i < (arr.length - 1)) str.append(':'); } return str.toString(); }
其他
\.android\debug.keystore
的密码是 android
0 0
- android读取应用签名信息
- Android 读取APK签名信息
- Android 读取APK签名信息
- android 读取apk签名信息
- Android 读取APK签名信息
- Android 读取APK签名信息
- Android 读取APK签名信息
- Android应用签名读取工具
- android获取应用签名信息
- 【android】查看应用签名信息
- 查看Android应用签名信息
- 查看Android应用签名信息
- 查看Android应用签名信息
- 查看Android应用签名信息
- 查看Android应用签名信息
- 查看Android应用签名信息
- 查看Android应用签名信息
- android中 能不能读取签名信息
- HTML5 Cookie总结
- 黑马程序员——java基础---集合--迭代
- Web Services 指南之:Web Services 的组件
- Conclusion for Resource Management
- 缺失值的处理方法
- android读取应用签名信息
- Java 对象特性知识点复习
- bzoj1066 (最大流)
- 操作系统作业动态分区
- C#托管代码与C++非托管代码互相调用
- Android简单实用的交互动画库
- 医学图像分割方法
- 友元与静态成员---面向对象的妥协
- android 包命名不管你怎么命,千万不要用下面几个