为 RSACryptoProvider 和 BouncyCastle 生成密钥/加密/解密

Posted

技术标签:

【中文标题】为 RSACryptoProvider 和 BouncyCastle 生成密钥/加密/解密【英文标题】:Generate key/Encryption/Decryption for RSACryptoProvider and BouncyCastle 【发布时间】:2018-12-11 13:31:24 【问题描述】:

通过 RSACryptoProvider 生成的密钥适用于 BouncyCastle 加密(使用公钥)/解密(使用私钥)?

 using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
        
            var pu = rsa.ToXmlString(false);               
            var pr = rsa.ToXmlString(true);               
        

另外,如何使用 BouncyCastle 生成密钥?

【问题讨论】:

【参考方案1】:

回答第一个问题,是的,RSA 是一种标准,它不依赖于所使用的库。

其次,试试这个:

    public static void GetRsaKeyPair(out string privateXml, out string publicXml)
    
        CryptoApiRandomGenerator randomGenerator = new CryptoApiRandomGenerator();
        SecureRandom secureRandom = new SecureRandom(randomGenerator);
        var keyGenerationParameters = new KeyGenerationParameters(secureRandom, 1024);

        var rsaKeyPairGenerator = new RsaKeyPairGenerator();
        rsaKeyPairGenerator.Init(keyGenerationParameters);
        AsymmetricCipherKeyPair rsaKeyPair = rsaKeyPairGenerator.GenerateKeyPair();

        var privateRsaParameters = DotNetUtilities.ToRSAParameters((RsaPrivateCrtKeyParameters)rsaKeyPair.Private);

        using (RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider())
        
            rsaProvider.ImportParameters(privateRsaParameters);
            privateXml = rsaProvider.ToXmlString(true);
            publicXml = rsaProvider.ToXmlString(false);
        
    

【讨论】:

以上是关于为 RSACryptoProvider 和 BouncyCastle 生成密钥/加密/解密的主要内容,如果未能解决你的问题,请参考以下文章

为函数定义接口,我无权访问该声明

Shell bash 脚本 简介

node对象

关于axios的一些封装

YOLOv1网络

HDU 2846 Repository