SymmetricAlgorithm.LegalBlockSizes Свойство

Определение

Получает размеры блоков (в битах), которые поддерживаются алгоритмом симметричного шифрования.Gets the block sizes, in bits, that are supported by the symmetric algorithm.

public:
 virtual property cli::array <System::Security::Cryptography::KeySizes ^> ^ LegalBlockSizes { cli::array <System::Security::Cryptography::KeySizes ^> ^ get(); };
public virtual System.Security.Cryptography.KeySizes[] LegalBlockSizes { get; }
member this.LegalBlockSizes : System.Security.Cryptography.KeySizes[]
Public Overridable ReadOnly Property LegalBlockSizes As KeySizes()

Значение свойства

Массив, в котором содержатся размеры блоков, поддерживаемые данным алгоритмом.An array that contains the block sizes supported by the algorithm.

Примеры

В следующем примере показано значение LegalBlockSizes для симметричных алгоритмов.The following example shows the value of LegalBlockSizes for the symmetric algorithms.

using System;
using System.Security.Cryptography;
namespace SymmetricAlgo
{
    class Program
    {
        static void Main(string[] args)
        {
            AesManaged aes = new AesManaged();
            Console.WriteLine("AesManaged ");
            KeySizes[] ks = aes.LegalKeySizes;
            foreach (KeySizes k in ks)
            {
                Console.WriteLine("\tLegal min key size = " + k.MinSize);
                Console.WriteLine("\tLegal max key size = " + k.MaxSize);
            }
            ks = aes.LegalBlockSizes;
            foreach (KeySizes k in ks)
            {
                Console.WriteLine("\tLegal min block size = " + k.MinSize);
                Console.WriteLine("\tLegal max block size = " + k.MaxSize);
            }
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            Console.WriteLine("DESCryptoServiceProvider ");
            ks = des.LegalKeySizes;
            foreach (KeySizes k in ks)
            {
                Console.WriteLine("\tLegal min key size = " + k.MinSize);
                Console.WriteLine("\tLegal max key size = " + k.MaxSize);
            }
            ks = des.LegalBlockSizes;
            foreach (KeySizes k in ks)
            {
                Console.WriteLine("\tLegal min block size = " + k.MinSize);
                Console.WriteLine("\tLegal max block size = " + k.MaxSize);
            }
            RC2CryptoServiceProvider rc2 = new RC2CryptoServiceProvider();
            Console.WriteLine("RC2CryptoServiceProvider ");
            ks = rc2.LegalKeySizes;
            foreach (KeySizes k in ks)
            {
                Console.WriteLine("\tLegal min key size = " + k.MinSize);
                Console.WriteLine("\tLegal max key size = " + k.MaxSize);
            }
            ks = rc2.LegalBlockSizes;
            foreach (KeySizes k in ks)
            {
                Console.WriteLine("\tLegal min block size = " + k.MinSize);
                Console.WriteLine("\tLegal max block size = " + k.MaxSize);
            }
            RijndaelManaged rij = new RijndaelManaged();
            Console.WriteLine("RijndaelManaged ");
            ks = rij.LegalKeySizes;
            foreach (KeySizes k in ks)
            {
                Console.WriteLine("\tLegal min key size = " + k.MinSize);
                Console.WriteLine("\tLegal max key size = " + k.MaxSize);
            }
            ks = rij.LegalBlockSizes;
            foreach (KeySizes k in ks)
            {
                Console.WriteLine("\tLegal min block size = " + k.MinSize);
                Console.WriteLine("\tLegal max block size = " + k.MaxSize);
            }
            TripleDESCryptoServiceProvider tsp = new TripleDESCryptoServiceProvider();
            Console.WriteLine("TripleDESCryptoServiceProvider ");
            ks = tsp.LegalKeySizes;
            foreach (KeySizes k in ks)
            {
                Console.WriteLine("\tLegal min key size = " + k.MinSize);
                Console.WriteLine("\tLegal max key size = " + k.MaxSize);
            }
            ks = tsp.LegalBlockSizes;
            foreach (KeySizes k in ks)
            {
                Console.WriteLine("\tLegal min block size = " + k.MinSize);
                Console.WriteLine("\tLegal max block size = " + k.MaxSize);
            }
            
        }
    }
}
//This sample produces the following output:
//AesManaged
//        Legal min key size = 128
//        Legal max key size = 256
//        Legal min block size = 128
//        Legal max block size = 128
//DESCryptoServiceProvider
//        Legal min key size = 64
//        Legal max key size = 64
//        Legal min block size = 64
//        Legal max block size = 64
//RC2CryptoServiceProvider
//        Legal min key size = 40
//        Legal max key size = 128
//        Legal min block size = 64
//        Legal max block size = 64
//RijndaelManaged
//        Legal min key size = 128
//        Legal max key size = 256
//        Legal min block size = 128
//        Legal max block size = 256
//TripleDESCryptoServiceProvider
//        Legal min key size = 128
//        Legal max key size = 192
//        Legal min block size = 64
//        Legal max block size = 64
Imports System.Security.Cryptography


Class Program

    Shared Sub Main(ByVal args() As String)
        Dim aes As New AesManaged()
        Console.WriteLine("AesManaged ")
        Dim ks As KeySizes() = aes.LegalKeySizes
        Dim k As KeySizes
        For Each k In ks
            Console.WriteLine(vbTab + "Legal min key size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max key size = " + k.MaxSize)
        Next k
        ks = aes.LegalBlockSizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min block size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max block size = " + k.MaxSize)
        Next k

        Dim des As New DESCryptoServiceProvider()
        Console.WriteLine("DESCryptoServiceProvider ")
        ks = des.LegalKeySizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min key size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max key size = " + k.MaxSize)
        Next k
        ks = des.LegalBlockSizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min block size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max block size = " + k.MaxSize)
        Next k

        Dim rc2 As New RC2CryptoServiceProvider()
        Console.WriteLine("RC2CryptoServiceProvider ")
        ks = rc2.LegalKeySizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min key size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max key size = " + k.MaxSize)
        Next k
        ks = rc2.LegalBlockSizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min block size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max block size = " + k.MaxSize)
        Next k

        Dim rij As New RijndaelManaged()
        Console.WriteLine("RijndaelManaged ")
        ks = rij.LegalKeySizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min key size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max key size = " + k.MaxSize)
        Next k
        ks = rij.LegalBlockSizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min block size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max block size = " + k.MaxSize)
        Next k

        Dim tsp As New TripleDESCryptoServiceProvider()
        Console.WriteLine("TripleDESCryptoServiceProvider ")
        ks = tsp.LegalKeySizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min key size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max key size = " + k.MaxSize)
        Next k
        ks = tsp.LegalBlockSizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min block size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max block size = " + k.MaxSize)
        Next k

    End Sub
End Class
'This sample produces the following output:
'AesManaged
'        Legal min key size = 128
'        Legal max key size = 256
'        Legal min block size = 128
'        Legal max block size = 128
'DESCryptoServiceProvider
'        Legal min key size = 64
'        Legal max key size = 64
'        Legal min block size = 64
'        Legal max block size = 64
'RC2CryptoServiceProvider
'        Legal min key size = 40
'        Legal max key size = 128
'        Legal min block size = 64
'        Legal max block size = 64
'RijndaelManaged
'        Legal min key size = 128
'        Legal max key size = 256
'        Legal min block size = 128
'        Legal max block size = 256
'TripleDESCryptoServiceProvider
'        Legal min key size = 128
'        Legal max key size = 192
'        Legal min block size = 64
'        Legal max block size = 64

Комментарии

Симметричный алгоритм поддерживает только размеры блоков, соответствующие записи в этом массиве.The symmetric algorithm supports only block sizes that match an entry in this array.

Применяется к

Дополнительно