当前位置: 首页 > 知识库问答 >
问题:

从私钥和证书重新创建密钥库文件

侯博易
2023-03-14

我试图签署一个Android应用程序,但显然原始的keystore文件是不可用的。我所得到的只有以下几点:

  1. 私钥md5 0123456789abcdef0123456789abcdef<--虚构值,但
  2. 证书md5 fedcba9876543210fedcba9876543210<-原始为32个十六进制数字
  3. 已签署的生产Android应用程序

是否有任何方法可以从这些资产中重新创建一个keystore文件,以便我可以使用通常的Android构建过程(例如jarsigner-verbose-sigalg sha1withrsa-digestalg sha1-keystore my-release-key.keystore my_application.apk alias_name),以与原始应用程序相同的方式对Android应用程序的更新构建进行签名?

或者,我是否可以使用这些值以不同的方式签名应用程序,同时保持与原始应用程序的一致性?

共有1个答案

钱欣悦
2023-03-14

不,你不能。一旦私钥丢失,就无法重新创建它。如果这是可能的,私钥将没有太大的价值。MD5是一个单向函数,它不能恢复,而且--如果输入足够大,比如私钥--它也不能被强制。密钥和证书上的MD5值仅用于标识密钥和证书(称为指纹,因为这些值与密钥和证书的值相关联)。

您所能做的就是创建一个新的密钥对+证书(由同一个CA证书签名),并使用该证书对应用程序进行签名。

 类似资料:
  • 我是新来配置Jetty服务器的SSL。我按照digcert的步骤创建了私钥文件、证书请求CSR文件。 我向CA发送了证书请求,并拿回了我签名的CSR。但是CA给我发了一个有两个证书的捆绑包,一个是我的证书,由CA签名,第二个是CA证书。(1star_xyx_abc_comcrt文件,2.CRT文件)。现在我面临着从这些文件创建密钥库的麻烦。 当我按照Oracle文档的步骤4、5和6使用keytoo

  • 但是,这将错误地表示它无法加载证书。

  • 问题内容: 我的Java程序如何知道包含证书的密钥库在哪里?或者,如何告诉我的Java程序在哪里寻找密钥库? 在以某种方式指定了密钥库之后,如何指定用于对服务器进行身份验证的证书? 问题答案:

  • 在我对密钥库和证书做了一些研究后,我发现了以下指南: 了解密钥库、证书和别名 Java Keytool要领:使用Java keystores 如果我错了请纠正我。根据我的理解(和测试): null 您的密钥存储区包含1个条目 别名:testingkeypair创建日期:2016年1月11日条目类型:PrivateKeyEntry证书链长:1证书:所有者:CN=Testing,OU=Testing,

  • 如何为密钥对创建X509证书?(我的类已经有了密钥对,我需要创建一个证书来保存我的公钥,然后将其存储在密钥库中)。 我期望有一个X509证书构造函数能够接收我的公钥,然后通过keystore.set条目(pvtkey,cert)存储它,但我没有发现任何有用的关联新证书和我的密钥对... 任何想法? 编辑:我也试图通过证书链为空,但它不起作用,它看起来像一个错误报告http://bugs.sun.c