如何查看APK的MD5签名及无法显示MD5签名的解决办法

news2024/11/25 9:34:15

https://blog.asroads.com/post/3358e0c4.html

之前的文章内已经介绍了不少的关于Android环境下出Apk 包遇到的各种填坑操作,以及一些设置小技巧,但坑是未知的,今天又踩一个坑,这次的问题是和电脑环境有关的。于是下面记录一下。

如何查看APK的MD5签名

正常来讲我们都知道,想查看APK 的MD5签名,一般是两种办法,一种是直接对我们的Android签名文件keystore操作,另外一种是对我们已经构建成功的Release包操作。

利用项目的 keystore (jks)文件

keytool -list -v -keystore  xxx.keystore

或者 (后缀不同而已)

keytool -v -list -keystore xxx.jks

正常来讲 我们期待的结果是:
请添加图片描述
从输出的内容看到:MD5: XXXXXXX 就是我们要的签名内容。

通过CERT.RSA文件查询MD5签名

解压构建的Apk得到RSA文件

APK以zip文件方式打开,在\META-INF\目录中存在一个.RSA后缀的文件,一般名为CERT.RSA。

使用keytool命令获取MD5签名

keytool -printcert -file CERT.RSA

在这里插入图片描述

还有一种 直接使用android studio查看

在这里插入图片描述

意外情况无法显示MD5

MD5不显示

无论是上面哪一种情况都是这样:只有SHA1和SHA256,看不到有MD5,此时我一度怀疑是不少我的签名文件生成的有问题。后面才知道原来和环境有关,后面让同事在他电脑上用同样的命令就显示成功了!
在这里插入图片描述
解决办法:网上先去搜索了是不是MD5 在高版本下,就被废弃什么的,无果,后面就搜了遇到的问题,还真有前人遇到和解决了,下面的评论也讨论了原因。文章链接:
jdk10.0.1使用keytool -v -list -keystore xxx.jks拿不到Md5值

摘抄评论:
在这里插入图片描述

查询知识

后面找从事Android相关的朋友帮忙询问得知原来:高版本java 移除了 这些 Disable MD5 or MD2 signed jars
https://www.java.com/en/jre-jdk-cryptoroadmap.html

好吧,于是输出了一下我的本地java环境:

smile@bogon ~ %  java -version
java version "15.0.1" 2020-10-20
Java(TM) SE Runtime Environment (build 15.0.1+9-18)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing)
smile@bogon ~ %

至此,一切真相终于浮出水面,扑所迷离的问题,终于弄明白啦。本文完毕了。

2021年8月4日更新

后面经过寻找终于找到了一个 可以查看 MD5的神器,jadx

运行使用jadx-gui

jadx-gui /Users/smile/Downloads/test.apk

在这里插入图片描述
以上,就是如何查看 APK的 MD5签名。

拓展

.jks 和 .keystore 的区别

二者都是用来打包的,并保证应用的唯一性!

最大的区别在于:

keystore 是 Eclipse 打包生成的签名。
jks 是 Android studio 生成的签名!

备注:很多第三方市场,上传 apk 时,只支持 keystore(目前我没遇到过),需要把 .jks 签名转化为 .keystore

标准 keystore (standard jdk keystore types)

包括 JCEKS,JKS,PKCS12 这几种格式。

区别:

jceks : 存储对称密钥(分组密钥、私密密钥)
jks : 只能存储非对称密钥对(私钥 + x509公钥证书)
pkcs12 : 通用格式(rsa公司标准)。微软和java 都支持。

转载自
https://blog.asroads.com/post/3358e0c4.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/988328.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HotSpot垃圾收集算法实现细节

文章目录 根节点枚举安全点安全区域记忆集与卡表写屏障三色标记 根节点枚举 在可达性分析算法中,由于GC Roots众多,所以在从GC Roots集合中进行引用链查找时会耗费大量时间。 迄今为止,所有收集器在根节点枚举这一步骤时都是必须暂停用户线…

CS420 附加篇笔记 P1 - 如何寻找基址、偏移、实体的地址和指针

文章目录 IntroHealth variableEntityHow cheat engine worksWhat is an object / a classStatic addressesPointersRelative addressesSummary Intro 这一篇进入了进阶内容,讲的内容也变得即有广泛又有深入,推荐有一定基础和实践或者编程经验的观看&…

【MongoDB】Ubuntu22.04 下安装 MongoDB | 用户权限认证 | skynet.db.mongo 模块使用

文章目录 Ubuntu 22.04 安装 MongoDB后台启动 MongoDBshell 连入 MongoDB 服务 MongoDB 用户权限认证创建 root 用户开启认证重启 MongoDB 服务创建其他用户查看用户信息验证用户权限删除用户 skynet.db.mongo 模块使用authensureIndexfind、findOneinsert、safe_insertdelete、…

关于灾备系统中滚动备份是什么?

备份可以为数据提供安全性和某种形式的“撤销”功能,减少甚至消除不稳定性和风险。最常见的备份类型是完全备份和增量备份。但是,如果您需要频繁的、实时的备份,那么滚动备份就是一种更好的方法。 滚动备份: 在可接受的时间间隔…

ArcGIS 10.8软件安装包下载及安装教程

【软件名称】:ArcGIS 10.6 【安装环境】:Windows 【下载链接 】: 链接:https://pan.baidu.com/s/1wKpTeiFdhMBmbRWrJRCsoA 提取码:0987 复制这段内容后打开百度网盘手机App,操作更方便哦 软件简介 ArcGIS D…

手术麻醉管理系统源码的开发及应用

手术麻醉管理系统针对麻醉科、手术室和外科病房开发,用于管理与手术麻醉相关的信息,实现有关数据的自动采集、报告的自动生成以及病历的电子化,是医院信息系统的一个重要组成部分。采集和管理的数据包含患者的手术信息、麻醉信息,…

大数据和数据要素有什么关系?

大数据与数据要素之间存在密切的关系。大数据是指海量、多样化、高速生成的数据,而数据要素是指构成数据的基本元素或属性。数据要素包括但不限于数据的类型、结构、格式、单位、精度等。 大数据的产生和应用离不开数据要素的支持。数据要素确定了数据的基本特征和…

14. 线性代数 - 线性方程组

文章目录 线性方程组矩阵行列式全排列和逆序数N阶行列式(非)齐次线性方程Hi,大家好。我是茶桁。 结束了「微积分」部分的学习之后我们稍作休整,今天正式开始另外一部分:「线性代数」的学习。小伙伴们放松完回来要开始紧张起来了。 我们之前说过,不管是哪一个工程学科,根…

一定要看!超好用的音频剪辑软件推荐

“有没有好用的音频剪辑软件推荐呀?最近需要剪辑一个混合音乐,用来参加学校的歌曲比赛,但是现在没有办法进行剪辑,音频现在很多杂音,根本用不了,求推荐一个好用的音频剪辑软件,谢谢啦” 随着科…

WordPress 网站 “Error Establishing a Database Connection” 建立数据库连接时出错的解决方法

WordPress 网站 “Error Establishing a Database Connection” 建立数据库连接时出错的解决方法 有事半年没管网站,今天突然访问网站居然出现了这个: 以下是解决方案: 检查数据库是否运行,重启数据库 1.检查数据库是否正常运…

在校学生如何白嫖黑群辉虚拟机和内网穿透,实现海量资源的公网访问?(小白专用)

文章目录 前言本教程解决的问题是:按照本教程方法操作后,达到的效果是前排提醒: 1 搭建群辉虚拟机1.1 下载黑群辉文件vmvare虚拟机安装包1.2 安装VMware虚拟机:1.3 解压黑 群辉虚拟机文件1.4 虚拟机初始化1.5 没有搜索到黑群辉的解…

Purple Pi OH(Debian/Ubuntu)使用python控制gpio

本文分享的是Purple Pi OH开源主板搭载Debian/Ubuntu系统如何使用python控制gpio。 Purple Pi OH作为一款兼容树莓派的开源主板,采用瑞芯微RK3566 (Cortex-A55) 四核64位超强CPU,主频最高达1.8 GHz,算力高达1Tops,支持INT8/INT16,支持Tensor…

好玩的js特效

记录一些好玩的js特效 1、鱼跳跃特效 引入jquery:https://code.jquery.com/jquery-3.7.1.min.js 源码如下&#xff1a; <!--引入jquery--> <script src"https://code.jquery.com/jquery-3.7.1.min.js"></script> <!--引入跳跃源码--> <s…

【PHP】使用TCPDF导出PDF文件

目录 一、安装TCPDF类库 二、安装字体 三、使用TCPDF导出PDF文件 目的&#xff1a;PHP通过TCPDF类库导出文件为PDF。 开发语言及类库&#xff1a;ThinkPHP、TCPDF 效果图如下 一、安装TCPDF类库 在项目根目录使用composer安装TCPDF&#xff0c;安装完成后会在vendor目录下…

深化超低时延技术合作,中科驭数助力金仕达开创极速行情新高度

近日&#xff0c;金仕达副总经理吴江带领FPGA低延时、终端和分布式团队主要负责人赴中科驭数武汉研发中心考察调研。双方深入探讨低延时技术&#xff0c;并在FPGA国产化成果、高性能开发平台等方向展开合作研讨。以此次交流为起点&#xff0c;双方将充分发挥各自优势&#xff0…

2023-简单点-编译是什么?gcc是什么?

编译目的 把一种 程序 变成 另一种更接近机器指令 编译的术语 “接近专家的最快方法第一步&#xff0c;直接了解100行业黑话” 那么来了解一下&#xff0c;编译过程中的黑话&#xff1a; 词法分析语法分析中间代码目标代码代码优化出错管理表格管理 gcc是个什么? 一种编译…

【liunx】进程的状态

进程的状态 1.进程的状态2.僵尸进程3.孤儿进程 1.进程的状态 我们或多或少了解到进程的状态分为&#xff1a; 运行&#xff0c;新建&#xff0c;就绪&#xff0c;挂起&#xff0c;阻塞&#xff0c;等待&#xff0c;停止&#xff0c;挂机&#xff0c;死亡… 首先解释一点&…

windows系统edge浏览器退出账户后还能免密登录的解决方式

edge浏览器明明退出登录了&#xff0c;还能不用输密码一键点击就能登录&#xff1b; 这是因为微软的煞笔产品经理用脚后跟想出来的方案。 解决方案&#xff1a; 去设置里的账号管理&#xff0c;注销自己的微软账号登录&#xff1b;如果你发现自己并没有登录&#xff0c;那么看…

Spring框架中bean的生命周期(理解)

1.解释Spring框架中bean的生命周期 在传统的Java应用中&#xff0c;bean的生命周期很简单。使用Java关键字new进行bean实例化&#xff0c;然后该bean就可以使用了。一旦该bean不再被使用&#xff0c;则由Java自动进行垃圾回收。 相比之下&#xff0c;Spring容器中的bean的生命…