首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >证书与私钥匹配

证书与私钥匹配
EN

Stack Overflow用户
提问于 2012-12-18 04:13:25
回答 2查看 1.8K关注 0票数 1

我们目前正在用java实现一个数字签名applet。用户将拥有包含私钥的密钥库及其相应证书的令牌。证书和私钥将具有不同的别名。

我需要做的是调用/匹配存储中的私钥和用户在签名时选择的证书。如何在java中将私钥与其相应的证书匹配?我需要类似getkey(别名,密码)的东西,其中别名是从所选证书和密钥之间的匹配中派生的。

EN

回答 2

Stack Overflow用户

发布于 2012-12-18 04:51:12

如果您正在使用ECC,那么

代码语言:javascript
复制
Q = k * P

其中Q是您的公钥,因此当您知道私钥k时,您也知道基点P和曲线,因此您可以“轻松”计算公钥。

当使用众所周知的实现时,RSA的问题也很简单,其中指数e是固定的。如果它不被修复,它可能会很棘手,但也不会那么难。

完全不同的问题是...如何将给定的pubkey与存储的证书进行匹配?另一个问题是为什么要做这样的事情?您应该在签名后保存证书信息,并在java密钥库中访问相应的证书。歧义总是一个问题,特别是在加密中,你应该尽可能地明确。

票数 0
EN

Stack Overflow用户

发布于 2012-12-18 04:59:46

如果我理解你的设计-你的想法不应该继续,但是java应该支持你需要的东西:

使用以下代码:

代码语言:javascript
复制
 KeyStore.PrivateKeyEntry pkEntry = (KeyStore.PrivateKeyEntry)
 ks.getEntry("privateKeyAlias", password);
 Certificate certificateFromPrivateKey = pkEntry.getCertificate();
 KeyStore.TrustedCertificateEntry certEntry = (KeyStore.TrustedCertificateEntry)ks.getEntry("certificateAlias, password);
 Certificate certificateFromPublicKey = certEntry.getCertificate();

 if (certificateFromPrivateKey.equals(certificateFromPublicKey)) ...

javadoc上阅读更多关于它的信息--但我真的认为你的做法是错误的。

还有-一个相关的应用程序接口(我假设您正在使用它)- http://docs.oracle.com/javase/6/docs/api/java/security/Signature.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13921459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档