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

如何使用Android存储中的私钥

贺飞星
2023-03-14

我正在尝试使用下面的代码从Android系统存储中导入私钥:

PrivateKey privateKey = KeyChain.getPrivateKey(activity, alias);

其中别名是使用keychain.choosePrivateKeyAlias()方法检索的。keychain.getPrivateKey返回null,但PrivateKey对象包含错误的键(其所有重要字段都为null)。我认为密钥是不可导出的,并试图在下一段代码中使用它:

Cipher rsa;
rsa = Cipher.getInstance("RSA");
rsa.init(Cipher.ENCRYPT_MODE, privateKey);
byte[] enc = rsa.doFinal(str.getBytes());

UPD:我试着用不同的RSA证书做同样的事情,结果是一样的:(

共有1个答案

农英杰
2023-03-14

请尝试下面对我非常有效的代码:

KeyStore ks;
ks = KeyStore.getInstance("AndroidCAStore");
ks.load(null, null);
keyChain = KeyChain.getCertificateChain(ctx, certificateAlias);
privateKey = KeyChain.getPrivateKey(ctx, certificateAlias);
 类似资料:
  • 问题内容: 我正在使用该方法在Go中生成私钥/公钥对。我想将私钥存储在用户计算机上的文件中,并在程序启动时将其加载。有一种封送公钥的方法,但没有封送私钥的方法。我应该简单地自己滚动还是有推荐的存储私钥的方法? 问题答案: 这是一个代码示例,演示了Go中密钥的编码和解码。知道您需要连接几个步骤会有所帮助。加密算法是第一步,在这种情况下为ECDSA密钥。然后,您需要标准编码,x509是最常用的标准。最

  • 问题内容: 我曾经生成过RSA密钥对。如果我没看错,那么KeyStore仅用于存储证书,而不用于存储密钥。如何将私钥正确存储在计算机上? 问题答案: 注意:此代码仅用于演示目的。将私钥存储在磁盘上时,必须对其进行加密。不要按原样使用它。 您可以执行以下操作: 保存功能: 并以相同的方式读回: 读取私钥相似。

  • 问题内容: 我正在尝试在可访问我的私人git存储库的Docker容器中添加一个私钥。testing_git文件位于包含Dockerfile的文件夹中。我正在尝试制作一个可以动态提取git代码的容器。 这是我的Dockerfile: 输出: 因此,当我使用相同的密钥时,可以访问我的存储库。 谁能告诉我我想念的东西吗? 问题答案: 错误消息不是在抱怨您的私钥,而是在抱怨github.com的主机密钥。

  • 问题内容: GitLab是一种免费的开放源代码方式,用于托管私有存储库,但它似乎不适用于Go。创建项目时,它将生成以下形式的URL: 哪里: 是gitlab服务器的IP地址 是有权访问私有存储库的用户组 Golang 1.2.1似乎不了解这种语法。 结果是: 有办法让它工作吗? 问题答案: 现在,此问题已在Gitlab 8. *中解决,但仍然不直观。确实,最困难的挑战是,以下步骤将使您克服这些挑战

  • 那么,如何使用私钥呢?这里是有关文件的要点。 如何在Azure Key Vault中序列化和反序列化PFX证书帮助了我?但跟着它走之后,我就到了这个状态。