Android获取安装包32位签名
16lz
2022-03-05
获取Android安装包签名有2种方法。
一、代码中获取,但是需要知道安装包的包名。
代码如下:
PackageManager manager = getPackageManager(); /** 通过包管理器获得指定包名包含签名的包信息 **/ PackageInfo packageInfo = null; try { packageInfo = manager.getPackageInfo("your package name", PackageManager.GET_SIGNATURES); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } /******* 通过返回的包信息获得签名数组 *******/ Signature[] signatures = packageInfo.signatures; String ss = MD5.hexdigest(signatures[0].toByteArray()); if(ss != null) { Toast.makeText(this, "签名" + ss, Toast.LENGTH_LONG).show(); }else{ Toast.makeText(this,"没获得签名",Toast.LENGTH_LONG).show(); }
还需要一个MD5工具类:
public class MD5 { private static final char[] hexDigits = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 97, 98, 99, 100, 101, 102 }; public static String hexdigest(String paramString) { try { String str = hexdigest(paramString.getBytes()); return str; } catch (Exception localException) { } return null; } public static String hexdigest(byte[] paramArrayOfByte) { try { MessageDigest localMessageDigest = MessageDigest.getInstance("MD5"); localMessageDigest.update(paramArrayOfByte); byte[] arrayOfByte = localMessageDigest.digest(); char[] arrayOfChar = new char[32]; int i = 0; int j = 0; while (true) { if (i >= 16) return new String(arrayOfChar); int k = arrayOfByte[i]; int m = j + 1; arrayOfChar[j] = hexDigits[(0xF & k >>> 4)]; j = m + 1; arrayOfChar[m] = hexDigits[(k & 0xF)]; i++; } } catch (Exception localException) { } return null; }}
二、使用命令获取
cmd命令,然后进去*.jks所在的目录,输入命令行:
keytool -list -v -keystore [xxx] -keypass [xxx]
获取到的MD5值,去掉其中的“:”就是我们需要的32的签名。
更多相关文章
- android apk签名生成及配置
- 【Android】Android实现截取当前屏幕图片并保存至SDCard
- Android(安卓)程序获取、设置铃声和音量
- Android(安卓)2.2新增的DeviceAdminInfo类
- 通过 http post 方式上传多张图片
- Android(安卓)利用getIdentifier()方法获取资源ID
- 利用第三方jar包jaudiotagger实现与MediaMetadataRetriever类似
- Android(安卓)dumpstate 工具解析
- android 中的 Bitmap 相关