创建私钥命令:
keytool -genkey -keystore <path>.keystore -keyalg RSA -validity <days> -alias <private key>
该命令位于jdk安装目录的bin目录下,用于创建签名用的私钥。
其中:
-genkey 表示创建私钥。
-keystore 后面跟私钥仓库的名称,如果指定的仓库不存在,则创建一个新的仓库文件。
-keyalg 表示加密方式,一般跟RSA即可。
-validity 表示有效期限,单位为天,可以指定36500,即100年。
-alias 表示要添加的私钥名称,这个名称会被添加并存储到仓库文件中。
命令执行后,需要再输入一些信息,最后输入Y确认。
其中涉及到两个密码,一个是私钥仓库的密码,一个是具体私钥的密码,可以相同。
当输入完私钥的密码后,命令执行完成。
签名命令:
jarsigner -verbose -keystore <path>.keystore -signedjar <signed>.apk <unsigned>.apk <private key>
该命令位于jdk安装目录的bin目录下,用于使用私钥对未签名APK进行签名。
其中:
-verbose 表示输出相关信息。
-keystore 后面跟签名时使用的私钥所在的仓库文件。
-signedjar 表示对文件进行签名,后面跟三个参数:
第一个为签名后的文件名。
第二个为未签名的文件名,可以使用Eclipse的插件Android Tools导出未签名APK。
第三个是使用的私钥名称。
命令执行后,需要输入相关密码,然后输出相关信息,直到命令结束。
另外需要注意的是,如果是JDK1.7的版本,需要在签名命令后边添加如下参数:
-digestalg SHA1 -sigalg MD5withRSA
否则,最后签名的APK不能被安装,会提示以下错误:
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
对齐优化命令:
zipalign -v 4 <unaligned>.apk <aligned>.apk
该命令位于sdk安装目录下的tools目录下,用于对已签名APK进行对齐优化。
其中:
-v 表示对齐的字节数,一般指定为4即可。
后面紧跟的两个参数分别为未对齐优化的文件名和优化后的文件名。
对已签名文件进行对齐优化后,可以得到更好的执行速度。
--------------------------------------------------------------------------------
生成签名的APK:
该过程将包含生成私钥仓库、生成私钥、打包APK、为APK签名、对APK对齐优化等一系列操作。
Android工程目录下的bin目录下,由Eclipse自动生成的APK文件是使用了默认的debug签名的。
使用该方式签名的apk可以安装到设备上,但是不同的环境,可能debug签名不同,并不通用。
而且,debug签名的APK无法发布到Market上。
可以用如下方式导出一个APK并进行签名:
工程->右键->Export->Android->Export Android Application...
或者
工程->右键->Android Tools->Export Signed Application Package...
在打开的窗口中,如果想要修改导出的工程,可以点击Browse进行修改。点击Next继续。
这里有两个选项:
Use existing keystore 使用既存的私钥仓库文件。
Create new keystore 创建一个新的私钥仓库文件。
一般的,如果已经创建了一个仓库文件,选择第一项即可,否则,需要选择第二项,创建一个新的仓库文件。
1、创建一个新的仓库文件:
Location 私钥仓库文件的保存位置。
Password 私钥仓库的密码。
Confirm 再次确认私钥仓库的密码。
2、使用已有的仓库文件:
Location 既存私钥仓库文件的位置。
Password 既存私钥仓库的密码。
点击Next继续。
这里又有两个选项:
Use existing key 使用已经存在的私钥对APK进行签名。
Create new key 创建一个新的私钥用于对APK进行签名。
1、创建一个新的私钥:
选中Create new key后,点击Next继续。
在打开的窗口中,输入相关参数,其中:
Alias 私钥名称。
Password 私钥的密码。
Confirm 再次确认私钥密码。
Validity (years) 有效期,单位是年,与命令行执行时的单位不同。
下面的可选参数里,必须有一项不为空,其它可选参数可以不填。
2、使用已有的私钥:
Alias 下拉列表里会列出私钥仓库文件里存在的私钥,选择想要使用的私钥。
Password 输入选择的私钥对应的密码。
点击Next继续。
在新窗口中,选择签名后的文件保存的位置,点击Finish完成上述所有操作。
生成未签名的APK:
使用命令的方式对APK进行签名,该APK必须是未签名的。
如果对已签名文件进行再签名,不会成功。如下方式可以得到一个未签名的APK:
工程->右键->Android Tools->Export Unsigned Application Package...
另外,新的ADT会在工程目录下生成proguard.cfg文件,使用它可以在签名时混淆代码。
混淆代码可以加大反编译代码后的理解难度,起到保护代码的作用。
使用方法是,修改工程目录下的project.properties文件,在最后添加:
proguard.config=proguard.cfg
分享到:
相关推荐
rsa私钥加密程序,用于加密,使用的密钥格式见rsa密钥生成程序
可强制签名已过期数字签名,这是成品exe,若容查杀没毒
替换签名私钥文件 复制ba脚本t快捷方式到上一层文件夹 待签名apk拖到脚本t快捷方式图标上即可
C#使用pem格式的密钥对文件来做RSA加解密接签名和验证签名,这里的pem文件是openssl命令生成的密钥对文件,其中私钥pem文件需要用openssl命令转换成pkcs8格式的pem文件。如果已有pem文件,也可以通过openssl命令转换...
演示使用私钥对hash进行签名,以及公钥验签的过程。 大部分情况下签名和验签都是对原始数据,先计算hash,在签名;验签时也是对原始数据比较。 在远程签名的情况下,签名过程在PKI服务器上执行,Client端只需要上传...
代码签名数字证书(含私钥),数字签名是使用自己的私钥签名,C,C++源码.zip
可强制签名已过期数字签名,这是成品exe,若容查杀没毒
公钥私钥数字签名数字证书详解
IDEA开发的纯java源码 提供颁发私钥和证书接口,获取公私钥,自定义证书主题信息,同时提供合成pfx文件的接口 私钥数据和证书数据可通过ssl工具的匹配,可进行签名验签、加解密操作。
通过本资源的学习,您将能够轻松地为您的Android项目生成keystore并进行签名。这将确保您的应用程序在发布时具有更高的安全性和稳定性,同时为您的用户提供更好的体验。此外,我们还提供二次开发定制服务,以满足您...
本工具为将助记词利用bip39转换为不同代币的私钥,方便导入钱包
轻松使用nacl (tweetnacl) 创建公共私钥对,以签名,验证,加密和解密消息
C#RSA加密解密签名和验证签名的小例子,代码都加了注释,可以很容易看懂.如果应用到消息收发,发送方用公钥加密,接收方用私钥解密.如果是应用到软件注册方面,则需要客户端保留公钥,程序开发者保留私钥.使用签名和验证...
只是实现了签名验证 公钥加密和私钥解密 验证了sm2中的数据没有具体应用与工程 整个代码是在linux下 用eclipse开发的 没有自己编写makefile文件 需要调试的话自己写一个或专业安装ecslipse 里面包括了源代码和gmp的...
Windows下证书私钥和证书请求CSR生成工具,一键生成私钥和CSR文件,直接发给证书供应商或者自签名就可以了
Android源码编译出来的signapk.jar既可给apk签名,也可给rom签名的。使用格式: java –jar signapk.jar [-w] publickey.x509[.pem] privatekey.pk8 input.jar output.jar -w 是指对ROM签名时需使用的参数 ...
一种基于摘要口令加密私钥的数字签名模式.pdf
开发大楼:./build.sh测试:./test.sh使用标志my.apk在my.apk旁边创建my.s.apk标志my.apk --override将my.apk替换为已签名的版本验证签名。 jarsigner -verify my.s.apk版本CI代理将新版本自动发布到GitHub。 只需将...
很多下载的都只有其中一个文件,不能转换LINUX下产生的私钥。