我正在生成密钥对并将它们存储在xml文件中,使用

ToXmlString(true);


我需要将密钥大小设置为2048
根据MSDN,唯一执行此操作的地方是来自RSACryptoServiceProvider的构造函数

    private void AssignParameter(ProviderType providerType)
    {
        CspParameters cspParams;

        cspParams = new CspParameters((int)providerType);
        cspParams.KeyContainerName = RSAEncryption.containerName;
        cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
        cspParams.ProviderName = "Microsoft Strong Cryptographic Provider";
        cspParams.KeyNumber = (int)KeyNumber.Exchange;

        this.rsa = new RSACryptoServiceProvider(2048, cspParams);
    }


当我使用检查密钥大小时

int x = this.rsa.KeySize;


我总是得到1024
那这怎么了?

最佳答案

我以前看过,请尝试更改容器名称或尝试

using (this.rsa = new RSACryptoServiceProvider(2048, cspParams))
{

}


this.rsa.Clear();完成后。

如果您已经有一个同名的容器,它将重新使用我相信的容器。

10-08 09:01