AsymmetricAlgorithm.KeySize 属性

定义

获取或设置非对称算法所用密钥模块的大小(以位为单位)。

public virtual int KeySize { get; set; }

属性值

非对称算法所用密钥模块的大小(以位为单位)。

例外

密钥模块大小无效。

示例

下面的代码示例演示如何重写 属性, KeySize 以验证它是否属于局部 keySizes 成员变量中标识的范围。 此代码示例是为 AsymmetricAlgorithm 类提供的一个更大示例的一部分。

public override int KeySize 
{
    get { return KeySizeValue; }
    set
    {
        for (int i=0; i < keySizes.Length; i++)
        {
            if (keySizes[i].SkipSize == 0) 
            {
                if (keySizes[i].MinSize == value)
                {
                    KeySizeValue = value;
                    return;
                }
            }
            else
            {
                for (int j = keySizes[i].MinSize;
                    j <= keySizes[i].MaxSize;
                    j += keySizes[i].SkipSize)
                {
                    if (j == value)
                    {
                        KeySizeValue = value;
                        return;
                    }
                }
            }
        }

        // If the key does not fall within the range identified 
        // in the keySizes member variable, throw an exception.
        throw new CryptographicException("Invalid key size.");
    }
}

注解

有效密钥大小由非对称算法的特定实现指定,并在 属性中 LegalKeySizes 列出。

适用于

产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1

另请参阅