Java 如何加密&;使用x509证书解密消息?
据我所知,x509证书用于分发公钥,在我的例子中,公钥是RSA密钥,因此我可以用它加密消息,但在不知道私钥的情况下,我无法取回消息。我在我的linux虚拟机上创建了密钥,并将它们复制到windows以用于我的项目,我通过以下方式获得它们:Java 如何加密&;使用x509证书解密消息?,java,ssl,encryption,Java,Ssl,Encryption,据我所知,x509证书用于分发公钥,在我的例子中,公钥是RSA密钥,因此我可以用它加密消息,但在不知道私钥的情况下,我无法取回消息。我在我的linux虚拟机上创建了密钥,并将它们复制到windows以用于我的项目,我通过以下方式获得它们: InputStream inputStream = new FileInputStream("./certificates/cert" + LoginController.getLoggedUser().getID() + ".crt"); Certifica
InputStream inputStream = new FileInputStream("./certificates/cert" + LoginController.getLoggedUser().getID() + ".crt");
CertificateFactory cf = CertificateFactory.getInstance("X509");
Certificate c = cf.generateCertificate(inputStream);
myCert = (X509Certificate) c;
现在我使用证书做两件事,首先验证用户是否可以登录到应用程序,其次我必须使用隐写术对隐藏在picute中的消息进行加密/解密。所以我想知道哪个文件包含我的私钥,以及如何使用JavaSEAPI将其加载到我的程序中?(顺便说一句,我的虚拟机上仍然有CA主体和所有内容)。
私钥应该位于由
keytool
生成的密钥库中(理想情况下,没有其他地方——私钥是不打算分发的,因此得名)
看起来您可以通过的实例访问密钥库。您需要生成密钥库时使用的密码;它是
load
方法的参数之一。私钥应该位于keytool
生成的密钥库中(理想情况下,在其他任何地方——私钥都不会分发,因此得名)
看起来您可以通过的实例访问密钥库。您需要生成密钥库时使用的密码;这是加载方法的参数之一。嗨,我想做的是用公钥加密我的消息,用私钥解密消息,这只是为了学校作业,安全性不是大问题。我可以使用
keytool
生成证书吗?可以。创建一个密钥对,使用它创建一个CSR(CSRkeytool
也可以生成),然后使用CSR和您的密钥对创建一个自签名证书。在野外不会太有用,因为它不是由受信任的CA签名的……但它对于学习来说已经足够好了。不过,考虑到在所有这些过程中您不需要真正证明您的身份,您可以跳过证书部分。你真正需要的是密钥,它可以独立于任何证书创建。你能给我一个链接来解释怎么做吗?好的,这比我想象的还要简单P谷歌给了我一个简短的提示,我想做的是用公钥加密我的信息,用私钥解密信息,这只是为了学校作业,安全性在这里不是什么大问题。我可以使用keytool
生成证书吗?可以。创建一个密钥对,使用它创建一个CSR(CSRkeytool
也可以生成),然后使用CSR和您的密钥对创建一个自签名证书。在野外不会太有用,因为它不是由受信任的CA签名的……但它对于学习来说已经足够好了。不过,考虑到在所有这些过程中您不需要真正证明您的身份,您可以跳过证书部分。你真正需要的是密钥,它可以独立于任何证书创建。你能给我一个链接来解释怎么做吗?好的,这比我想象的还要简单P谷歌给了我一个快速的提示