排行榜 统计
  • 文章总数:1688 篇
  • 评论总数:5 条
  • 分类总数:8 个
  • 最后更新:昨天 21:09

apk签名获取工具_关于keytool和jarsigner工具签名的使用小结

本文阅读 4 分钟
首页 常用工具 正文

在我们日常Android应用开发中,我们都要对我们开发的apk做签名处理,或者加固,增强我们apk的安全性,防止被逆向反编译,在apk签名这块,我们一般采用JDK自动工具来签名,下面就对相关工具做个简要说明和小结。

首先、我们需要先在电脑上安装JDK和环境变量配置:

JDK下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html,在一系列的安装后,确保可以使用keytool 和 jarsigner两个工具能有使用,例如具体位置如下:

1.制作签名工具
C:>where keytool
C:Program FilesJavajdk1.7.0_45binkeytool.exe2.进行签名工具
C:>where jarsigner
C:Program FilesJavajdk1.7.0_45binjarsigner.exe

其次,签名分两个部分,即生成签名签名密钥和对apk做签名:

第一步:生成私钥,使用工具 - keytool:

Keytool 选项描述-genkey产生一个键值对(公钥和私钥)-v允许动作输出-alias键的别名。只有前八位字符有效。-keyalg产生键的加密算法。支持DSA和RSA。-keysize产生键的长度。如果不支持,keytool用默认值1024 bits.通常我们用2048 bits 或更长的key。-dname

专有名称,描述谁创建的密钥。该值被用作自签名证书的颁发者和主题字段。注意你可以不在命令行指定。如果没有指定keytool会提示你(CN, OU, and so on)。

-keypass

键的密码。

主要为了安全起见,如果没提供,keytool会提示你输入。

-validity

键的有效期,单位:天

Note: A value of 10000 or greater is recommended.

-keystore.keystore用于存储私钥的文件。-storepass

私钥存储文件的密码。

主要为了安全起见,如果没提供,keytool会提示你输入。这个密码不会存储在你的shell历史记录中。

keytool -genkey -v -keyalg DSA -keysize 1024 -sigalg SHA1withDSA -validity 20000 -keystore MyDevel.keystore -alias devel -keypass MyDevel -storepass MyDevel

46b4b22b5265613679afee5fedd051ce.png

(图片来源网络)

第二步:用私钥进行签名 - jarsigner:

Jarsigner 选项描述-keystore.keystore包含你私钥的存储文件-verbose显示输出动作。-sigalg签名算法,用 SHA1withRSA.-digestalg消息摘要算法,用 SHA1.-storepass

存储文件的密码。

主要为了安全起见,如果没提供,jarsigner会提示你输入。这个密码不会存储在你的shell历史记录中。

-keypass

私钥的密码。

主要为了安全起见,如果没提供,jarsigner会提示你输入。这个密码不会存储在你的shell历史记录中。

jarsigner -verbose -sigalg SHA1withDSA -digestalg SHA1 -keystore myDevel.keystore -storepass MyDevel test.apk devel

d1883dc85ab3d41890665b75b0257e1e.png

(图片来源网络)

至此,我们就可以把重签名后的apk安装包安装到模拟器或手机上面使用,另外,如果是对已有apk做过逆向分析或反编译修改过图标、代码的,再采用回编译后我们仍然要用上面的工具对生成的新apk做重签名,这样才能安装到手机,因为通过apktool回编译后的apk已经破坏了原有签名,即不带签名,那么这个时候就不能安装到真机或模拟器,我们只能通过keytool和jarsigner工具来重签名,对于逆向反编译感兴趣的朋友,点击左下角【了解更多】学习更多逆向反编译的知识。

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://typecho.firshare.cn/archives/1449.html
免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。避免网络欺诈,本站不倡导任何交易行为。如您私自与本站转载自公开互联网中的资讯内容中提及到的个人或平台产生交易,则需自行承担后果。本站在注明来源的前提下推荐原文至此,仅作为优良公众、公开信息分享阅读,不进行商业发布、发表及从事营利性活动。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。
-- 展开阅读全文 --
医保定点医院、定点药店,一键查询→
« 上一篇 01-05
nginx伪静态规则配置的方法
下一篇 » 01-13