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

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.hqwc.cn/news/103535.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Arthas 排查JVM问题总结

一、安装 在Arthas官网:https://arthas.aliyun.com/中下载安装包。 执行java -jar arthas-boot.jar就可以启动。 二、常见命令 dashboard:查看JVM全局概览,包括线程、堆内存、GC还有系统信息等 thread:常见命令,查看…

原生JavaScript+PHP多图上传实现

摘要 很多场景下需要选择多张图片上传&#xff0c;或者是批量上传以提高效率&#xff0c;多图上传的需求自然就比较多了&#xff0c;本文使用最简单的XMLHttpRequest异步上传图片。 界面 上传示例 代码 index.html <!DOCTYPE html> <html><head><titl…

1987-2021年全国31省专利申请数和授权数

1987-2021年全国31省国内三种专利申请数和授权数 1、时间&#xff1a;1987-2021年 2、来源&#xff1a;整理自国家统计局、科技统计年鉴、各省年鉴 3、范围&#xff1a;31省市 4、指标&#xff1a;国内专利申请受理量、国内发明专利申请受理量、国内实用新型专利申请受理量…

Logstash--logstash-syslog-putput插件安装及使用

这篇文章讲的是如何在Linux服务器上安装logstash-syslog-output插件及使用&#xff0c;是集网上之大成&#xff0c;择选出一条正确有效简短的路。 安装 插件logstash-syslog-output&#xff0c;如果你的logstash没有&#xff0c;则需要安装。 查看logstash是否含有这个插件的…

Vue+Element Progress 进度条显示文字 %修改,使用format方法显示文字可自定义

需求 要实现这样子的 将进度条里显示的文字 后的 %去掉 主要用到 format 方法 代码 <el-progress :text-inside"true" :stroke-width"30" :format"format":percentage"usageA"></el-progress>methods: {format(percent…

JVM调优

JVM测试 jstat命令&#xff1a; Java的jstat命令使用详解 jstat -gcutil vmid jinfo命令&#xff1a; jinfo vmid Xms为2G&#xff0c;而Xmx约为30G jmap命令&#xff1a; jmap -heap vmid 串行GC &#xff0c;Serial GC Concurrent Mark-Sweep GC &#xff1a;CMS回收器…

Android SDK 上手指南||第十一章 虚拟与物理设备

第十一章 虚拟与物理设备 在之前的文章里&#xff0c;大家已经了解了Android项目当中的基本元素、接触了用户界面的设计以及数据存储方案。接下来&#xff0c;我们将一同探索如何在物理及虚拟设备上运行自己的应用程序并与之互动。在系列文章的下一篇中&#xff0c;我们将分步…

【iOS】属性关键字

文章目录 前言一、深拷贝与浅拷贝1、OC的拷贝方式有哪些2. OC对象实现的copy和mutableCopy分别为浅拷贝还是深拷贝&#xff1f;3. 自定义对象实现的copy和mutableCopy分别为浅拷贝还是深拷贝&#xff1f;4. 判断当前的深拷贝的类型&#xff1f;(区别是单层深拷贝还是完全深拷贝…

线程池|单例模式|STL、智能指针线程安全|读者写者问题

线程池 线程池的逻辑思想&#xff1a; 每当我们处理一个任务就要创建一个线程&#xff0c;创建线程的开销是很大的。因此我们可以预先创建一批线程&#xff0c;任务队列里没有任务的时候&#xff0c;每个线程都休眠&#xff0c;当队里中有任务的时候&#xff0c;就可以唤醒线程…

异步请求库的实际应用案例:爬取豆瓣经典电影

在日常爬虫过程中&#xff0c;你有没有遇到过需要爬取大量数据的情况&#xff0c;但是传统的同步请求方式让您等得焦头烂额&#xff1f; 这个问题的根源在于传统的同步请求方式。当我们使用同步请求时&#xff0c;程序会一直等待服务器的响应&#xff0c;直到数据返回后才能继续…

运算符重载(个人学习笔记黑马学习)

1、加号运算符重载 #include <iostream> using namespace std; #include <string>//加号运算符重载 class Person { public://1、成员函数重载号//Person operator(Person& p) {// Person temp;// temp.m_A this->m_A p.m_A;// temp.m_B this->m_B p…

什么是数据中台,关于数据中台的6问6答6方法

在大数据/数字孪生时代&#xff0c;数据中台已经成为企业治理数据的核心平台。数据中台不仅处理和整合大量数据&#xff0c;还负责数据的存储、管理和保护工作&#xff0c;确保数据的准确性和可用性。数据中台的特点在于其能够提高业务效率&#xff0c;降低成本&#xff0c;增加…