您的位置:首页 > 移动开发 > Android开发

Android下使用keytool和jarsigner为jar签名

2014-03-06 10:53 239 查看
一、keytool常用命令

-genkey 表示要创建一个新的密钥

-alias 产生别名

-keystore 指定密钥库的名称(就像数据库一样的证书库,可以有很多个证书,cacerts这个文件是jre自带的,

你也可以使用其它文件名字,如果没有这个文件名字,它会创建这样一个)

-storepass 指定密钥库的密码

-keypass 指定别名条目的密码

-list 显示密钥库中的证书信息

-v 显示密钥库中的证书详细信息

-export 将别名指定的证书导出到文件

-file 参数指定导出到文件的文件名

-delete 删除密钥库中某条目

-import 将已签名数字证书导入密钥库

-keypasswd 修改密钥库中指定条目口令

-dname 指定证书拥有者信息

-keyalg 指定密钥的算法

-validity 指定创建的证书有效期多少天

-keysize 指定密钥长度

使用说明:

1. 创建一个新证书:

keytool -genkey -keystore myKeyStore -storepass 666666 -keypass 888888 -alias certName

-keystore myKeyStore 证书库名称(可以使用其它文件名字,如果没有这个文件名字,它会创建这样一个)

-storepass 666666中的666666是这个证书库的密码

-keypass 888888中的888888是这个特定证书的密码

-alias certName 证书的名称

2. 导出证书

keytool -export -keystore myKeyStore -storepass 666666 -keypass 888888 -alias certName -file D:\cert_root.cer

-keystore myKeyStore 从密钥库myKeyStore中导出证书certName

-storepass 666666中的666666是这个证书库的密码

-keypass 888888中的888888是这个特定证书的密码

-alias certName 需要导出证书的名称

-file D:\cert_root.cer 导出证书的路径及文件名

3. 导入一个证书命令可以如下:

keytool -import -keystore myKeyStore -storepass 666666 -keypass 888888 -alias cerName -file D:\cert_root.cer

其中-keystore myKeyStore中的myKeyStore:证书要导入此证书库,如果没有此库则创建一个。

-storepass 666666中的666666是这个证书库的密码

-keypass 888888中的888888是这个特定证书的密码

-alias cerName中的cerName是你导入证书的别名,在其它操作命令中就可以使用它

-file D:\cert_root.cer中的文件路径就是要导入证书的路径

4. 浏览证书库里面的证书信息,可以使用如下命令:

keytool -list -v -alias alibabacert -keystore cacerts -storepass 666666

5. 要删除证书库里面的某个证书,可以使用如下命令:

keytool -delete -alias alibabacert -keystore cacerts -storepass 666666

6. 要修改某个证书的密码(注意:有些数字认证没有私有密码,只有公匙,这种情况此命令无效)

这个是交互式的,在输入命令后,会要求你输入密码

keytool -keypasswd -alias alibabacert -keystore cacerts

这个不是交互式的,输入命令后直接更改

Keytool -keypasswd -alias alibabacert -keypass 888888 -new 123456 -storepass 666666 -keystore cacerts

二、jarsigner是用来给jar签名的,命令行如下:

jarsigner -keystore mykeyStore -storepass 666666 -keypass 888888 JTest.jar certName

-keystore myKeyStore 证书库名称

-storepass 666666中的666666是这个证书库的密码

-keypass 888888中的888888是这个特定证书的密码

-alias certName 需要选用此证书为jar签名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: