如何加密&使用x509证书解密消息?

时间:2017-12-18 17:04:49

标签: java ssl encryption

据我所知,x509证书用于分发公钥,在我的情况下是一个RSA密钥,因此我可以使用它来加密消息,但是在不知道私钥的情况下我无法获取消息背部。我在我的linux虚拟机上创建了密钥,然后将它们复制到windows中以便在我的项目中使用,并以这种方式获取它们:

InputStream inputStream = new FileInputStream("./certificates/cert" + LoginController.getLoggedUser().getID() + ".crt");
CertificateFactory cf = CertificateFactory.getInstance("X509");
Certificate c = cf.generateCertificate(inputStream);
myCert = (X509Certificate) c;

现在我将证书用于两件事,首先验证用户是否可以登录应用程序,其次我必须使用隐写术加密/解密我隐藏在picute中的邮件。所以我想知道哪个文件包含我的私钥以及如何使用Java SE API将其加载到我的程序中? (P.S.我有CA主体,一切仍在我的虚拟机上)。

1 个答案:

答案 0 :(得分:2)

私钥应该在keytool生成的密钥库中(理想情况下不在其他地方 - 私钥不应该分发,因此名称)。

看起来您可以通过java.security.KeyStore的实例访问密钥库。您需要生成密钥库时使用的密码;它是load方法的参数之一。