在RSA和非对称加密的上下文中的证书是什么?



我尝试为学习目的实现不对称的辅助。我了解到证书有助于确定公共密钥的所有者。但是如何实施证书?你能给我一个可以使用的证书的例子吗?

我实施了加密和解密,但是现在我想使用证书。

您可以使用OpenSSL生成自签名的X.509证书 - 在线有许多教程。证书具有标准化格式,并且不是Java的特定格式。

openssl req -x509 -newkey rsa:3072 -sha256 -nodes -keyout privkey.pem -out selfsigned.pem
openssl pkcs8 -in privkey.pem -nocrypt -outform DER -out privkey.p8
openssl x509 -in selfsigned.pem -outform DER -out selfsigned.crt

这为证书生成两个文件(包含公共密钥(,一个用于私钥。还有一个PEM编码的私钥和证书,Java无法直接处理。私钥文件未加密或以其他方式进行加密,因此仅将其用于测试目的。

证书与"X.509"CertificateFactory兼容。私钥与KeyFactory"RSA"兼容为算法和PKCS8EncodedKeySpec

Java本身不能直接使用生成证书。您可以使用有弹性城堡甚至EJBCA,如果需要内部编码,那是一条非常陡峭的学习曲线。

证书是将某些其他信息附加到某人的公钥的数据,并由著名的第三方(授权(以数字方式签署。

证书的通用格式为X.509,在ASN1中编码。

典型的证书将至少包含"通用名称",主题密钥指纹(已通过公共密钥的哈希(,有效期和所有这些签名。

相关内容

最新更新