我有一堆.keystore文件,需要找到一个具有特定CN和别名的文件。有办法做到这一点与keytool, jarsigner或其他工具?我找到了一种方法来检查特定的密钥存储库是否用于对特定的apk进行签名,但是我还需要获得每个文件中的别名和证书名称。
当前回答
我们可以使用简单的命令从Certs获取证书列表,并在结果输出中搜索您的别名。
keytool -list -keystore C:/swdtools/jdk1.7.0_67/jre/lib/security/cacerts
其他回答
KeyStore Explorer开源可视化工具,用于管理密钥库。
在Windows上:
Keytool -v -list -keystore my_keystore | findstr my_string
参考:
CMD搜索目录以查找文件中的字符串
您可以从Java代码运行。
try {
File file = new File(keystore location);
InputStream is = new FileInputStream(file);
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
String password = "password";
keystore.load(is, password.toCharArray());
Enumeration<String> enumeration = keystore.aliases();
while(enumeration.hasMoreElements()) {
String alias = enumeration.nextElement();
System.out.println("alias name: " + alias);
Certificate certificate = keystore.getCertificate(alias);
System.out.println(certificate.toString());
}
} catch (java.security.cert.CertificateException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (KeyStoreException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(null != is)
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
证书类保存有关密钥存储库的所有信息。
更新—获取私钥
Key key = keyStore.getKey(alias, password.toCharArray());
String encodedKey = new Base64Encoder().encode(key.getEncoded());
System.out.println("key ? " + encodedKey);
@prateek希望这就是你想要的!
cmd:
keytool -list -keystore 'keystoreName'
然后按回车键 然后CMD将提示您输入密钥库密码
CMD在输入时不会在屏幕上显示密码 所以只要输入正确的密码——小心点——然后再按回车。
或者你可以用:
keytool -list -keystore 'keystoreName' -storepass 'type your keystore passwd'
对于Keys的完整信息,只需添加-v:
keytool -v -list -keystore 'keystoreName' -storepass 'type your keystore passwd'
keytool -v -list -cacerts -alias cert1
这适用于我,当我检查证书添加到jdk-11的别名,并检查它是否添加在windows机器上
推荐文章
- 在maven中安装mvn到底做什么
- 在android中从上下文获取活动
- 不可变与不可修改的集合
- 如何在JSON中使用杰克逊更改字段名
- GSON -日期格式
- 如何从线程捕获异常
- 无法解析主机"<URL here>"没有与主机名关联的地址
- getActivity()在Fragment函数中返回null
- 如何在Java中打印二叉树图?
- 按钮背景是透明的
- String.format()在Java中格式化双重格式
- 在Mac OS X上哪里安装Android SDK ?
- 我如何获得图像缩放功能?
- 在Android应用程序中显示当前时间和日期
- com.jcraft.jsch.JSchException: UnknownHostKey