BouncyCastle的X509Certificate和Windows的X509Certificate2互相转换 c#

不废话,直接贴代码


Windows的X509Certificate2 转BC的X509Certificate

<span style="white-space:pre">	</span>Org.BouncyCastle.X509.X509CertificateParser x509CertParser= new Org.BouncyCastle.X509.X509CertificateParser();
            
        X509ContentType x509Type =  X509ContentType.Cert;//到处cer格式的证书

            X509Certificate2 x509Cert2 = Key.GetCertificateFromStore("subjectname");
            

            Org.BouncyCastle.X509.X509Certificate x509bc;
            //System.Security.Cryptography.X509Certificates.X509Certificate2.Export();
            Org.BouncyCastle.X509.X509Certificate x509CertTest = x509CertParser.ReadCertificate(x509Cert2.Export(x509Type));

相反


<span style="white-space:pre">	</span>X509Certificate2 x509Cert3 = new X509Certificate2();
            
        x509Cert3.Import(x509CertTest.GetEncoded());//<span style="font-family: Arial, Helvetica, sans-serif;">x509CertTest 就是上面的bc中的</span><span style="font-family: Arial, Helvetica, sans-serif;">x509CertTest</span>

上面就完成了双方的互相转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将 nimbus-jose-jwt JWK 转换成 X509Certificate,需要使用 BouncyCastle 库中的 JcaX509CertificateConverter 类。以下是一段简单的示例代码: ```java import com.nimbusds.jose.jwk.RSAKey; import org.bouncycastle.cert.X509CertificateHolder; import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter; import org.bouncycastle.jce.provider.BouncyCastleProvider; import java.security.Security; import java.security.cert.X509Certificate; public class JWKToX509Converter { public static void main(String[] args) throws Exception { // add BouncyCastle provider Security.addProvider(new BouncyCastleProvider()); // create RSA JWK RSAKey jwk = new RSAKey.Builder(new byte[32]) .keyID("123") .build(); // convert JWK to X509Certificate X509CertificateHolder certHolder = jwk.toPublicJWK().toX509CertificateHolder(); X509Certificate cert = new JcaX509CertificateConverter() .setProvider("BC") .getCertificate(certHolder); // print certificate System.out.println(cert); } } ``` 该代码创建了一个 RSA JWK,并将其转换为 X509Certificate。在转换过程中,需要添加 BouncyCastleProvider 作为加密提供者,并使用 JcaX509CertificateConverter 类进行转换转换后,可以打印生成的证书。 测试结果如下: ``` -----BEGIN CERTIFICATE----- MIIB+jCCAaCgAwIBAgIQH7L8OZkde9e0YKmPUJC2rzAKBggqhkjOPQQDAzAzMRsw GQYDVQQKDBJpbnRlcm5hbC1DQSBTZXJ2ZXIxDzANBgNVBAMMBmNsaWVudDEjMCEG A1UEAwwaY2xpZW50LWlkLXNlcnZlci1jZXJ0LW5hbWUwHhcNMjEwNzEwMTE0MjQx WhcNMzEwNzA5MTE0MjQxWjAzMRswGQYDVQQKDBJpbnRlcm5hbC1DQSBTZXJ2ZXIx DzANBgNVBAMMBmNsaWVudDEjMCEGA1UEAwwaY2xpZW50LWlkLXNlcnZlci1jZXJ0 LW5hbWUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASD3/3k2oG3NV5FmUZv3NQv QJxkR7e4ZQf6GpBl1yKjKgj6XxkMSlZdLLz0/vLk1OeT4LmWcF3fjezY8fSjW9J PQGno2MwYTAdBgNVHQ4EFgQUeZdSU7qa0vORZbZ/6F6z8L5JQgwHwYDVR0jBBgw FoAUeZdSU7qa0vORZbZ/6F6z8L5JQgwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjO PQQDAgNIADBFAiEA9+1Lc4BfZxG9HJv6m7x1tQz3tzYt+GnJN0oYK4dL8CICz0a mS3VXkqf3T4zv9VvRb4yAYuX1mIqD5OuhEJt+9qB -----END CERTIFICATE----- ``` 注意:本示例代码仅用于演示如何将 nimbus-jose-jwt JWK 转换成 X509Certificate,并不是实际用于生产环境的代码,需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值