关于Java自带的签名工具-Keytool的使用
jarsigner 是JDK提供的针对jar包签名的通用工具,位于 JDK/bin/jarsigner
1.展示签名相关信息:
keytool -list -v -keystore [签名] -storepass [密码]例如:keytool -list -v -keystore ./miwan.keystore注意,该命令需要输入签名的密码;-list:列出证书
-v:输出详细信息
-storepass:指定密钥库的解锁密码
-rfc 以可编码方式打印证书
2.查询apk的签名信息-方式1
keytool -printcert -jarfile [apk文件]例如:keytool -printcert -jarfile game.apk文件
3.查询apk的签名信息-方式2
keytool -printcert -file [apk文件解压之后里面的签名文件]
4.修改密钥库中指定条目的密码
keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new 新密码 -storepass keystore密码 -keystore 所在的密钥库
5.修改密钥库的密码
keytool -storepasswd -keystore ./yushan.keystore(需修改口令的keystore) -storepass 123456(原始密码) -new yushan(新密码)
6.生成签名
通过-genkeypair可生成签名keytool -genkeypair -alias "test" -keyalg "RSA" -keystore "test.keystore"-genkeypair:生成一对非对称密钥;
-alias:指定密钥对的别名,该别名是公开的;
-keyalg:指定加密算法,本例中的采用通用的RAS加密算法;
-keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".keystore"的文件
可参考:https://www.jb51.net/article/238417.htm
7.签名方式一般有两种,一种是上面提到的jarsigner的方式
a:jar方式的签名命令:
jarsigner -digestalg SHA1 -sigalg SHA1withRSA -verbose -keystore youkeystore.keystore -storepass xxx -keypass xxx -signedjar %1.new.apk %1 wanka.keystore
验证是否成功
jarsigner -verify -verbose -certs new_demo2.apk
当输出 jar已验证,表示签名成功;
b:apksigner方式的签名命令:
需要用到.pk8和x509.pem这两个文件以及signapk.jar依赖包
java -jar signapk.jar cert.x509.pem private.pk8 unsigned.apk signed.apk
keystore与pk8+x509.pem的转换
参考文档:https://cloud.tencent.com/developer/article/1720058
我总结下来的是以下命令:
1. keytool -importkeystore -srckeystore test.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS121. keytool -importkeystore -srckeystore test.keystore -srcstorepass wankasdk -destkeystore tmp.p12 -deststoretype pkcs122.openssl pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem3.打开tmp.rsa.pem文件,将里面的复制“BEGIN CERTIFICATE” “END CERTIFICATE” 到(新建个文件) platform.x509.pem,复制 “BEGIN RSA PRIVATE KEY” “END RSA PRIVATE KEY” 到(同上) private.rsa.pem4.openssl pkcs8 -topk8 -outform DER -in private.rsa.pem -inform PEM -out platform.pk8 -nocrypt
注意:此种方式生成的签名方式V1签名:
从Android 7.0开始, 谷歌增加新签名方案 V2 Scheme (APK Signature);
但Android 7.0以下版本, 只能用旧签名方案 V1 scheme (JAR signing)
因为本人从事Android 游戏SDK开发工作,所以大部分时候还是使用的V1签名方式;下一篇文章我也将会介绍如何使用Android自带的apksigner进行V2签名;
关于Java自带的签名工具-Keytool的使用相关推荐
- Java自带的常用工具
2019独角兽企业重金招聘Python工程师标准>>> 引言 在日常代码使用中,我们经常遇到判断字符串为空,或者集合为空的操作.例如判断集合为空,我的第一反应是list.size() ...
- java 自带thread分析工具_java自带的jvm分析工具
这段时间觉得很有必要对java的内存分析工具进行熟悉,这样以后出现机器负载较高,或者反应很慢的时候,我就可以查找原因了.上网搜了搜,发现下面这些是比较常用的,然后我在机器上试试了,把结果也贴出来哈. ...
- Android Studio自带apk签名工具——apksigner
问题背景 解决方法 总结 阅读之前注意: 本文阅读建议用时:5min 本文阅读结构如下表: 项目 下属项目 测试用例数量 问题背景 无 0 解决方法 无 1 总结 无 0 问题背景 最近在看<A ...
- 使用jdk 自带的jarsigner 签名工具签名的apk 和android规范有区别
jdk 自带的签名工具签名后的 apk : ebuy 是签名文件的 Alias名称. android sdk 签名和jdk 签名之后的apk 对比: android sdk 签名: jdk jarsi ...
- 数字证书管理工具keytool常用命令介绍
需要给一个apk加签名,用到了keytool这个工具,下面转载一篇介绍keytool的文章 http://blog.chinaunix.net/uid-17102734-id-2830223.html ...
- java和签名工具_java 证书工具keytool生成自签名证书和自签CA证书
jdk自带的证书管理工具叫keytool,在jdk/bin目录下,可以用来生成自签名证书.导入导出证书.打印证书信息等. 1. 名词 自签名证书:用自己的私钥签发自己的公钥即主体信息生成的证书. 证书 ...
- android apk签名工具_关于keytool和jarsigner工具签名的使用小结
在我们日常Android应用开发中,我们都要对我们开发的apk做签名处理,或者加固,增强我们apk的安全性,防止被逆向反编译,在apk签名这块,我们一般采用JDK自动工具来签名,下面就对相关工具做个简 ...
- JDK自带工具keytool生成ssl证书(web服务https配置)
原文:https://www.cnblogs.com/zhangzb/p/5200418.html 前言: 因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl ...
- java 证书查看工具_程序员必备工具 Java证书工具Keytool的使用
一.简介 Keytool是JDK自带的证书管理工具,在jdk/bin目录下,可以用来生成自签名证书.导入导出证书.打印证书信息等. 回顾下前一章的一些概念:PKI:公钥基础设施 X.509 : PKI ...
- JDK自带工具keytool生成ssl证书
前言: 因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl证书来使用https以保证数据安全. 百度了不少资料,看到JAVA的JDK自带生成SSL证书的工具: ...
最新文章
- Codeforces 955C Sad powers(数论)
- 【Codeforces Round #430 (Div. 2) D】Vitya and Strange Lesson
- java学习记录--ThreadLocal使用案例
- php默认语法,php基本语法
- 自动化测试之--参数化
- success.ftlh与error.ftlh
- Python字符串函数说明(菜鸟教程里面的)
- 使用redux和axios获取api数据
- ribbon设置权重_spring cloud gateway+ribbon 组合指定版本权重分流(简易灰度发布实现)...
- Elasticsearch学习--elasticsearch介绍与安装
- xposed框架-Hook修改imei imsi
- 51单片机下载完程序后不亮_单片机实用工具大全,超级赞,工程师必备!
- 【今日CV 计算机视觉论文速览 第108期】Tue, 30 Apr 2019
- 摩尔庄园一直显示服务器,《摩尔庄园手游》一直显示获取远端资源号介绍 进不去怎么办...
- 网站建设项目管理——8个步骤教你管理网站建设项目
- windows服务器双网卡链路聚合_服务器双网卡捆绑与交换机链路聚合排障1例
- 带宽,线速以及吞吐量的概念
- 通过IMSI判断运营商的方法
- 给每个物品一张“身份证”
- PHM2010刀具磨损数据集分享
热门文章
- 谈谈阿里云服务器入门级和企业级性能差别
- JavaScript在jQuery $(#).blur()内使用使用alert()函数导致无限失去焦点循环执行弹窗警告无法跳出解决方案...
- Hbase-1.2.11安装配置详细与使用
- 大数据能否让地震预警更加快速有效
- 【数据分享】1999—2021年地级市学校数、教师数和学生数(Shp/Excel格式)
- 《巴菲特1998年佛罗里达大学演讲》核心
- 在HP compaq dx2700安装windows server 2003时相关问题解决
- 【IEEE出版 | IEEE Xplore, EI, Scopus检索】第二届健康大数据与智能医疗国际会议(ICHIH 2023)
- JDBC-06:PrepardeStatement操作BLOB类型字段
- 什么是具有人身依附性的合同