通过android应用获取第三方应用签名的源码
来源:互联网 发布:java书籍pdf下载 编辑:程序博客网 时间:2024/05/01 13:08
前言
以下代码,运行在Android上可以通过第三方的包名来获取第三方应用的MD5签名。
private Signature[] getRawSignature(Context paramContext, String paramString) { if ((paramString == null) || (paramString.length() == 0)) { errout("getSignature, packageName is null"); return null; } PackageManager localPackageManager = paramContext.getPackageManager(); PackageInfo localPackageInfo; try { localPackageInfo = localPackageManager.getPackageInfo(paramString, 64); if (localPackageInfo == null) { errout("info is null, packageName = " + paramString); return null; } } catch (PackageManager.NameNotFoundException localNameNotFoundException) { errout("NameNotFoundException"); return null; } return localPackageInfo.signatures; } /** *paramString:第三方android应用的包名 */ private String getSign(String paramString) { Signature[] arrayOfSignature = getRawSignature(this, paramString); if ((arrayOfSignature == null) || (arrayOfSignature.length == 0)) { errout("signs is null"); } StringBuffer sign = new StringBuffer(); while (true) { return; int i = arrayOfSignature.length; for (int j = 0; j < i; j++) sign.append(MD5.getMessageDigest(arrayOfSignature[j].toByteArray())); } return sign.toString(); }
MD5加密代码:
import java.security.MessageDigest;public final class MD5 { public static final String getMessageDigest(byte[] paramArrayOfByte) { char[] arrayOfChar1 = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 97, 98, 99, 100, 101, 102 }; try { MessageDigest localMessageDigest = MessageDigest.getInstance("MD5"); localMessageDigest.update(paramArrayOfByte); byte[] arrayOfByte = localMessageDigest.digest(); int i = arrayOfByte.length; char[] arrayOfChar2 = new char[i * 2]; int j = 0; int k = 0; while (true) { if (j >= i) { return new String(arrayOfChar2); } int m = arrayOfByte[j]; int n = k + 1; arrayOfChar2[k] = arrayOfChar1[(0xF & m >>> 4)]; k = n + 1; arrayOfChar2[n] = arrayOfChar1[(m & 0xF)]; j++; } } catch (Exception localException) { } return null; } public static final byte[] getRawDigest(byte[] paramArrayOfByte) { try { MessageDigest localMessageDigest = MessageDigest.getInstance("MD5"); localMessageDigest.update(paramArrayOfByte); byte[] arrayOfByte = localMessageDigest.digest(); return arrayOfByte; } catch (Exception localException) { } return null; }}
通过命令行获取签名MD5
第一步、打开Android Studio的Tools->Open Terminal.. 或者是在cmd命令窗口中操作。第二步、输入命令:keytool -v -list -keystore keystore.jkskeytool这个命令,来自于jdk。
来源于:日积月累–AndroidStudio使用技巧
1 0
- 通过android应用获取第三方应用签名的源码
- Android端 通过第三方应用打开文档的方式
- Android 获取手机第三方应用列表
- Android通过第三方应用将自己的应用信息分享出去
- android获取应用签名
- android 获取应用签名
- Android 获取应用签名
- 获取android已安装的应用PackageInfo启动第三方APP应用
- android 第三方拉起应用的实现。
- Android 打开第三方应用的方法
- Android 第三方应用的打开
- android 通过apk方式接入第三方应用
- Android获取应用的签名信息
- ]获取android应用的MD5签名
- Android获取应用的签名信息
- Android获取应用的签名信息
- android源码应用中导入第三方jar包
- android 获取第三方应用程序包名并启动
- JNI开发第三步:20130801_NDK_JNI的.so文件开发-安卓访问LINUX驱动
- [剑指offer] 重建二叉树,根据前中,输出后,根据中后,输出前
- android tcp server
- Android之VideoView窗口/全屏播放
- iOS 开发时间选择器datePicker
- 通过android应用获取第三方应用签名的源码
- Android之SurfaceView窗口/全屏播放
- JNI综合实验一:LED点亮+IO电平读取
- JNI综合实验二:IO控制及驱动打开与关闭
- docker 容器和镜像的持久化
- 网页中 li 标签内元素 不换行的解决办法
- 数据结构之“Ordered List and Sorted List”(一)
- [LeetCode] Binary Tree Traversal 系列
- 独家揭秘:快速排名快速暴利的黑 帽seo