首先使用keytool命令行获取:
cmd中使用命令行:keytool -list -keystore D:\Desktop\app_key

根据提示输入keystore的密码,回车就可以看到签名的md5,sha1,sha256等信息
(或者keytool -printcert -jarfile your.apk获取签名信息)

然后在app中使用次keystore编译app并打log,app代码:

/*** MD5加密* @param byteStr 需要加密的内容* @return 返回 byteStr的md5值*/public static String encryptionMD5(byte[] byteStr) {MessageDigest messageDigest = null;StringBuffer md5StrBuff = new StringBuffer();try {messageDigest = MessageDigest.getInstance("MD5");messageDigest.reset();messageDigest.update(byteStr);byte[] byteArray = messageDigest.digest();
//            return Base64.encodeToString(byteArray,Base64.NO_WRAP);for (int i = 0; i < byteArray.length; i++) {if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) {md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));} else {md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));}}} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return md5StrBuff.toString();}/*** 获取app签名md5值,与“keytool -list -keystore D:\Desktop\app_key”‘keytool -printcert     *file D:\Desktop\CERT.RSA’获取的md5值一样*/public String getSignMd5Str() {try {PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);Signature[] signs = packageInfo.signatures;Signature sign = signs[0];String signStr = encryptionMD5(sign.toByteArray());return signStr;} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return "";}

打印结果:

可以看到与keytool命令行获取的一模一样。

android app内动态获取apk签名md5,与keytool获取的一致相关推荐

  1. 获取apk签名信息、抹除apk签名状态、重新签名apk

    Android应用市场一般都要求apk先进行签名才可上传应用,基于安全原则很多平台加入了apk需加固后才能上传的规则: 这时候就面临一个问题,因为apk加固后,会被抹除原有的签名信息,有些平台提供了官 ...

  2. Android App内截屏监控及涂鸦功能实现

    Android App内截屏监控及涂鸦功能实现 Android截屏功能是一个常用的功能,可以方便的用来分享或者发送给好友,本文介绍了如何实现app内截屏监控功能,当发现用户在我们的app内进行了截屏操 ...

  3. 获取apk签名及apk签名方法

    通过终端命令获取 1.1 通过keystore获取 执行命令keytool -list -v -keystore keystoreName -storepass keystorePassword,输入 ...

  4. android APP内显示PDF文件

    android APP内显示PDF文件 最近公司要做一个小功能,显示在APP内部显示pdf文件,刚接到任务感觉非常简单的一小功能,做的时候才发现在真的很不好实现. 因为android的webView与 ...

  5. Android 渠道包 动态生成 apk 名称

    Android 渠道包 动态生成 apk 名称 低版本打包配置 buildTypes {release {minifyEnabled trueshrinkResources truezipAlignE ...

  6. Android Studio 获取应用签名 MD5和SHA1等

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.配置module的build.gradle 二.使用步骤 总结 前言 平时开发,很多第三方需要配置应用签名,比如百 ...

  7. Android 获取apk签名的fingerprint

    为什么80%的码农都做不了架构师?>>>    假定安装了JDK,如果想查HelloWorld.apk所使用的签名的fingerprint,可以这样做: 1. 查找apk里的rsa文 ...

  8. 动态分析Android App之动态调试

    这个系列一共有五篇左右,内容主要介绍如何在Java层动态分析和调试Android App,和网上其他教程相比,内容更充实,体系更健全,深入而浅出. 闻道有先后,术业有专攻,希望能给刚入门Android ...

  9. 【Android安全】Android app开发者证书和代码签名机制

    参考链接: 安卓证书相关验证机制: https://duanqz.github.io/2017-09-01-Android-Digital-Signature (部分内容不准确) 关于META-INF ...

  10. Android打包知识体系(二)——APK签名介绍

    上一节介绍到多渠道打包的快速,他是如何如此迅速的完成打包的? 问题1:如何不修改签名的情况下,网APK中注入渠道信息??? 先不急接着往下看. 一.APK签名介绍: 1.APK 签名方案 Androi ...

最新文章

  1. R语言保存加载工作空间或者工作空间数据对象实战(Save Load RData Workspace)
  2. python中接口测试垃圾数据如何清理_一个六年经验的python后端是怎么学习用java写API的(2)Extracter,微信文章抓取清洗入库...
  3. 信号与线性系统分析_什么是线性系统?如何辨别控制系统?控制系统基本要求是什么?...
  4. 如何在开盘15分钟内发现当天黑马
  5. 聊聊高并发(二)结合实例说说线程封闭和背后的设计思想
  6. 如何以及何时使用枚举和注释
  7. python cookies过期_Python3中关于cookie的创建与保存
  8. IntelliJ IDEA 默认快捷键大全
  9. Uva 437 - The Tower of Babylon(DP)
  10. 【概率论】3-4:二维分布(Bivariate Distribution)
  11. android自定义曲线控件,Android自定义折线图
  12. matlab工具箱有哪些函数,matlab工具箱函数汇总(上)
  13. qq群管理助手(基于web接口)
  14. java 请求https post 接口 绕过证书验证
  15. Word中插入参考文献 自动管理
  16. 软件开发培训学校四大培训标准,引领行业标杆
  17. 基于单片机的led阅读灯方案
  18. Introducing Android Instant Apps - Google I-O 2016 翻译字幕
  19. kafka-生产者消息发送流程
  20. 无人机编队飞行技术 pdf_无人机教师李刚:无人机飞行中最重要的六个要点

热门文章

  1. W33 - 999、Web站点安全监控
  2. Xcode13.3 13.2以及Flutter新版本的稳定性问题
  3. 网络口碑推广的策略和实施技巧
  4. c#关于GMap离线地图加载的问题
  5. 王垠 java,王垠,40行代码,JAVA吧的大神怎么评论?
  6. 【ARM 嵌入式 C 入门及渐进 3 -- GCC __attribute__ 使用】
  7. Linux下C语言开发
  8. 计量经济学计算机第1章习题,计量经济学第1章习题.pdf
  9. onblur()无限触发问题
  10. 存储单元,字,MAR,存储字长,存储字,存储容量