我需要从一个*. ER
文件中提取公钥(RSA)。我希望提取密钥并将其存储在. pem
文件中,这样我就可以使用它的值来使用js加密加密值。
下面的命令转换。cer
至。pem
:
openssl x509 -inform der -in certificate.cer -out certificate.pem
然而,它生成的不是带有公钥的文件,而是包含*. cer
文件内容的文件。
-----BEGIN CERTIFICATE-----
MIICPDCCAamgAwIBAg............
*lots of extra contents*
-----END CERTIFICATE-----
我应该使用什么命令来提取公钥并将其存储在. pem
文件中?
PowerShell的解决方案:
$certFile = "[path to .cer file]"
$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($certFile)
$cer.PublicKey.Key.ToXmlString($false)
来自C#的解决方案:
string certificate = @"<PATH TO .CER>";
X509Certificate2 cert = new X509Certificate2(certificate);
string xml = cert.GetRSAPublicKey().ToXmlString(false);
使用这个命令,我能够生成。带有公钥内容的pem
。
openssl x509 -inform der -in certificate.cer -pubkey -noout > certificate_publickey.pem
产生:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsM+whXrxmbCkPfkwY2EehYpIp
*blah blah blah blah*
-----END PUBLIC KEY-----
以下命令生成一个包含公钥和私钥的文件: 资料来源:这里 使用OpenSSL,私钥也包含公钥信息,因此公钥不需要单独生成 如何从私钥中提取公钥。pem文件? 谢谢
主要的问题是,我对C相当陌生,OpenSSL留档对我来说不够清晰,我尝试过使用读和写rsa键到C中的pem文件,但我不太明白。例如,函数如何创建私有和公共?而从何而来?pcszPassphrase的意义是什么? 我会解释,好像这是某种伪代码,这就是我想做的,粗体部分是我不知道如何做的: 生成私钥和公钥作为十六进制缓冲区(客户端) 基本上,我知道如何处理AES加密/解密和通信协议,反正他们已经实现了
我有一个EVP_PKEY结构中的RSA公钥(从PEM文件加载,以------开始公钥------)。现在,我希望能够使用OpenSSL API显示代码中该密钥的指纹。(目的是允许操作员在信任JWT之前使用RS256验证其密钥)。 不幸的是,到目前为止,我发现的所有资源要么在命令行上使用ssh-keygen,要么使用X.509证书的指纹,但不使用公钥。 那么,如何使用OpenSSL API获取存储在
我知道可以使用此链接为OpenSSL中的自签名证书生成一个公钥和一个私钥。但是对于给定的公钥,我有没有可能算出对应的私钥呢?我一直在使用1024位的RSA公钥。
我想使用带有RSA算法的OpenSSL使用私钥加密文件: 现在,如果我执行解密操作: 此操作需要私钥 我知道我应该使用公钥进行加密,如果我使用私钥,我会得到一个签名。 然而,我想这样做是为了学习。
我正在使用openssl库,我想用BIO从. pem文件中读取公钥。我尝试了这个,但我的rsa变量仍然未初始化: 当我调试应用程序时,它向我显示如下内容: 我的文件有效,密钥是按照PKCS#1格式生成的。我用asn1解析器解析了它。