安卓获取apk的公钥,用于申请app备案等
要申请app的icp备案等场景,需要app的
证书MD5指纹和公钥,示例如下:

步骤1:使用keytool从APK中提取证书
1. 打开命令行,cd 到你的apk目录,如:app/release
2. 解压APK文件:
unzip your_application.apk -d apk_folder
3. 进入解压后的目录,找到META-INF文件夹,通常证书文件如CERT.RSA会存放在此处。
4. 使用keytool命令查看证书信息,并获取公钥:
keytool -printcert -file apk_folder/META-INF/CERT.RSA
这个命令将输出证书的详细信息,包括公钥。如果你需要公钥的具体数值,你可以使用openssl从此证书中提取:
步骤2:使用openssl提取公钥
-
首先需要将CERT.RSA转换为x509格式,可以使用以下命令:
openssl pkcs7 -print_certs -in apk_folder/META-INF/CERT.RSA -inform DER -outform PEM -out certificate.pem -
然后从转换的PEM证书文件中提取公钥:
openssl x509 -in certificate.pem -pubkey -noout > publickey.pem -
如果你需要公钥的十六进制形式,可以进一步使用以下命令:
openssl rsa -pubin -in publickey.pem -text -noout这一命令会输出公钥的详细信息,包括十六进制形式。
注意替换your_application.apk为你的APK文件名,并根据你的实际文件目录调整命令中的路径。
相关文章:
安卓获取apk的公钥,用于申请app备案等
要申请app的icp备案等场景,需要app的 证书MD5指纹和公钥,示例如下: 步骤1:使用keytool从APK中提取证书 1. 打开命令行,cd 到你的apk目录,如:app/release 2. 解压APK文件: unzip yo…...
【leetcode_python】杨辉三角
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRows 1 输出: [[1]] 方案&#…...
Parallels Desktop 20 for Mac中文版发布了?会哪些新功能
Parallels Desktop 20 for Mac 正式发布,完全支持 macOS Sequoia 和 Windows 11 24H2,并且在企业版中引入了全新的管理门户。 据介绍,新版本针对 Windows、macOS 和 Linux 虚拟机进行了大量更新,最大的亮点是全新推出的 Parallels…...
SpringBoot整合SSE-灵活管控连接
SpringBoot整合SSE(管控连接) 1、sse单向通信整成逻辑双向通信。 2、轻量级实现端对端信息互通。 3、避免繁琐配置学习。 核心点通过记录连接码和心跳检测实现伪双向通道,避免无效连接占用过多内存。 服务器推送(Server Push)技术允许网站和应用在有新内容可用时主动向用户…...
挖矿木马-Linux
目录 介绍步骤 介绍 1、挖矿木马靶机中切换至root用户执行/root目录下的start.sh和attack.sh 2、题目服务器中包含两个应用场景,redis服务和hpMyAdmin服务,黑客分别通过两场景进行入侵,入侵与后续利用线路路如下: redis服务&…...
【leetcode——415场周赛】——python前两题
3289. 数字小镇中的捣蛋鬼 数字小镇 Digitville 中,存在一个数字列表 nums,其中包含从 0 到 n - 1 的整数。每个数字本应 只出现一次,然而,有 两个 顽皮的数字额外多出现了一次,使得列表变得比正常情况下更长。 为了…...
【CSS in Depth 2 精译_029】5.2 Grid 网格布局中的网格结构剖析(上)
当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对…...
ZYNQ LWIP(RAW API) TCP函数学习
1 LWIP TCP函数学习 tcp_new()–新建控制块 这个函数用于分配一个TCP控制块,它通过tcp_alloc()函数分配一个TCP控制块结构来存储TCP控制块的数据信息, 如果没有足够的内容分配空间,那么tcp_alloc()函数就会尝试释放一些不太重要的TCP控制块, 比如就会释放处于TIME_WAIT、C…...
Spring Boot,在应用程序启动后执行某些 SQL 语句
在 Spring Boot 中,如果你想在应用程序启动后执行某些 SQL 语句,可以利用 spring.sql.init 属性来配置初始化脚本。这通常用于在应用启动时创建数据库表、索引、视图等,或者填充默认数据。data-locations 和 schema-locations 指定了 SQL 脚本…...
【SQL】百题计划:SQL最基本的判断和查询。
[SQL]百题计划 Select product_id from Products where low_fats "Y" and recyclable "Y";...
04_Python数据类型_列表
Python的基础数据类型 数值类型:整数、浮点数、复数、布尔字符串容器类型:列表、元祖、字典、集合 列表 列表(List)是一种非常灵活的数据类型,它可以用来存储一系列的元素。容器类型,能够存储多个元素的…...
F5设备绑定EIP
公网IP 公网IP(Public IP Address)是指可以直接在互联网上访问的IP地址,用于标识网络上的设备或主机。它允许外部网络访问您的云服务器,如提供远程登录服务、访问Web服务器等。然而,这并不意味着公网IP不需要路由。 …...
使用 PyCharm 新建 Python 项目详解
使用 PyCharm 新建 Python 项目详解 文章目录 使用 PyCharm 新建 Python 项目详解一 新建 Python 项目二 配置环境1 项目存放目录2 Python Interpreter 选择3 创建隔离环境4 选择你的 Python 版本5 选择 Conda executable 三 New Window 打开项目四 目录结构五 程序编写运行六 …...
从0开始学习 RocketMQ:分布式事务消息的实现
消息队列中的事务,主要是解决消息生产者和消息消费者数据一致性的问题。 应用场景 比如订单系统创建订单后,会发消息给购物车系统,将已下单的商品从购物车中删除。 由于购物车删除商品这一步骤并不是用户下单支付这个主流程中的核心步骤&a…...
MySQL 查询数据库的数据总量
需求:查看MySQL数据库的数据总量,以MB为单位展示数据库占用的磁盘空间 实践: 登录到MySQL数据库服务器。 选择你想要查看数据总量的数据库: USE shield;运行查询以获取数据库的总大小: SELECT table_schema AS Datab…...
[C++]——vector
🌇个人主页:_麦麦_ 📚今日小句:快乐的方式有很多种,第一种便是见到你。 目录 一、前言 二、vector的介绍及使用 2.1 vector的介绍 2.2 vector的使用 2.2.1 vector的定义(构造函数) 2.2.2…...
自动驾驶:LQR、ILQR和DDP原理、公式推导以及代码演示(七、CILQR约束条件下的ILQR求解)
(七)CILQR约束条件下的ILQR求解 CILQR((Constrained Iterative Linear Quadratic Regulator)) 是为了在 iLQR 基础上扩展处理控制输入和状态约束的问题。在这种情况下,系统不仅要优化控制输入以最小化代价函数&#x…...
随想录笔记-二叉树练习题
合并二叉树 617. 合并二叉树 - 力扣(LeetCode) dfs递归 class Solution {public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {if(root1null||root2null){return root1null?root2:root1;}return dfs(root1,root2);}public TreeNode dfs(Tre…...
华雁智科前端面试题
1. var 变量的提升 题目: var a 1 function fun() {console.log(b)var b 2 } fun() console.log(a) 正确输出结果:undefined、1答错了,给一个大嘴巴子,错误答案输出结果为:2,1 此题主要考察 var 定义的变量&…...
【iOS】单例模式
【iOS】单例模式 什么是单例模式? 定义 单例模式,简单地说就是一个类只对应一个对象,每次使用这个类时,都只能获取到那一个对象。它的详细定义如下: 如果一个类始终只能创建一个实例,则这个类被称为单例…...
CATIA数控加工仿真:铣平面粗加工的关键步骤与优化技巧
1. CATIA数控加工仿真入门:从零开始掌握铣平面粗加工 第一次接触CATIA数控加工仿真时,我和大多数新手一样被满屏的参数搞得头晕眼花。直到在车间跟老师傅学了三个月,才发现铣平面粗加工这个基础操作里藏着这么多门道。简单来说,这…...
嵌入式 AI 新尝试:在 STM32 上部署轻量级情绪分类模型
嵌入式 AI 新尝试:在 STM32 上部署轻量级情绪分类模型 1. 前沿探索:当AI遇上嵌入式系统 最近在AI领域有个有趣的现象:越来越多开发者开始尝试把AI模型塞进那些资源极其有限的嵌入式设备里。这就像给一台老式收音机装上智能语音助手…...
互联网产品创新:基于Qwen3-ASR-0.6B的在线教育实时字幕解决方案
互联网产品创新:基于Qwen3-ASR-0.6B的在线教育实时字幕解决方案 1. 引言 想象一下,你正在上一节重要的在线直播课,老师讲得飞快,有些专业术语没听清,或者因为网络波动声音断断续续。又或者,你身处一个嘈杂…...
Mamba模型实战:如何用Python快速搭建一个长序列处理Demo(附代码)
Mamba模型实战:如何用Python快速搭建一个长序列处理Demo(附代码) 在自然语言处理和时间序列分析领域,处理长序列数据一直是个棘手的问题。传统Transformer架构虽然表现出色,但随着序列长度增加,其计算复杂度…...
HDC1000温湿度传感器原理与嵌入式实战指南
1. 项目概述Grove - Temperature & Humidity Sensor (HDC1000) 是 Seeed Studio 推出的一款基于德州仪器(Texas Instruments)HDC1000 芯片的数字温湿度传感器模块。该模块采用标准 Grove 接口,支持 IC 总线通信,专为嵌入式系统…...
探索含简易撬棒电路crowbar的双馈风机Simulink仿真模型
【含有简易撬棒电路crowbar的双馈风机simulink仿真模型】 含过电压保护电路的双馈风机模型。 此模型中的撬棍(crowbar)不是使用 IGBT 或理想开关构建的。 通过改变转子侧变换器的参考电压,对撬棒电路的切入和切出进行建模。 控制策略是最常见…...
Beyond Compare 5专业授权生成器:3种高效授权方案完整指南
Beyond Compare 5专业授权生成器:3种高效授权方案完整指南 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare作为业界领先的文件对比工具,其强大的功能在软件…...
嵌入式开源项目解析与复刻实践指南
1. 嵌入式软件开源项目深度解析与复刻指南1.1 项目概述在嵌入式开发领域,工程化代码设计能力是区分初级与高级工程师的关键指标。本文精选五个经过实际验证的开源项目,从架构设计到实现细节进行深度剖析,为嵌入式开发者提供可复用的设计模式和…...
Gauge常见问题解决:10个典型错误及修复方法
Gauge常见问题解决:10个典型错误及修复方法 【免费下载链接】gauge Light weight cross-platform test automation 项目地址: https://gitcode.com/gh_mirrors/ga/gauge Gauge作为一款轻量级跨平台测试自动化工具,在使用过程中可能会遇到各种错误…...
OpenClaw本地搜索增强:GLM-4.7-Flash智能文件检索系统
OpenClaw本地搜索增强:GLM-4.7-Flash智能文件检索系统 1. 为什么需要智能文件检索 作为一个长期被杂乱文件困扰的技术写作者,我经常陷入"明明记得存过某个文档却死活找不到"的困境。传统的文件名搜索就像在黑暗房间里用手电筒找东西——必须…...
