CryptoProvider.BlockSize Özellik

Tanım

Şifre blok boyutunu bayt cinsinden alır.Gets the cipher block size, in bytes.

public:
 property int BlockSize { int get(); };
public int BlockSize { get; }
member this.BlockSize : int
Public ReadOnly Property BlockSize As Integer

Özellik Değeri

Int32

Şifre blok boyutu (bayt cinsinden).The cipher block size, in bytes. Gelişmiş Şifreleme Standardı (AES) için varsayılan blok boyutu 8 ' dir.The default block size for Advanced Encryption Standard (AES) is 8.

Örnekler

Aşağıdaki örnek, BlockSize düz metin verilerini şifreli metin verilerine dönüştürürken özelliğinin nasıl kullanılacağını gösterir.The following example shows how to use the BlockSize property in converting clear-text data to encrypted-text data.

WriteStatus("   Binding the author's UseLicense and");
WriteStatus("       obtaining the CryptoProvider.");
using (CryptoProvider cryptoProvider =
            authorsUseLicense.Bind(_secureEnv))
{
    WriteStatus("   Writing encrypted content.");
    using (Stream clearTextStream =
                File.OpenRead(contentFile) )
    {
        using (Stream cryptoTextStream =
                    File.OpenWrite(encryptedFile))
        {
            // Write the length of the source content file
            // as the first four bytes of the encrypted file.
            cryptoTextStream.Write(
                BitConverter.GetBytes(clearTextStream.Length),
                0, sizeof(Int32));

            // Allocate clearText buffer.
            byte[] clearTextBlock =
                new byte[cryptoProvider.BlockSize];

            // Encrypt clearText to cryptoText block by block.
            for(;;)
            {   // Read clearText block.
                int readCount = ReliableRead(
                                    clearTextStream,
                                    clearTextBlock, 0 ,
                                    cryptoProvider.BlockSize);
                // readCount of zero is end of data.
                if (readCount == 0)  break; // for

                // Encrypt clearText to cryptoText.
                byte[] cryptoTextBlock =
                    cryptoProvider.Encrypt(clearTextBlock);

                // Write cryptoText block.
                cryptoTextStream.Write(cryptoTextBlock, 0,
                                       cryptoTextBlock.Length);
            }
            WriteStatus("   Closing '" + encryptedFilename + "'.");
        }// end:using (Stream cryptoTextStream =
    }// end:using (Stream clearTextStream =
}// end:using (CryptoProvider cryptoProvider =
WriteStatus("   Done - Content encryption complete.");
WriteStatus("   Binding the author's UseLicense and")
WriteStatus("       obtaining the CryptoProvider.")
Using cryptoProvider As CryptoProvider = authorsUseLicense.Bind(_secureEnv)
    WriteStatus("   Writing encrypted content.")
    Using clearTextStream As Stream = File.OpenRead(contentFile)
        Using cryptoTextStream As Stream = File.OpenWrite(encryptedFile)
            ' Write the length of the source content file
            ' as the first four bytes of the encrypted file.
            Dim expression As Int32
            cryptoTextStream.Write(BitConverter.GetBytes(clearTextStream.Length), 0, Len(expression))

            ' Allocate clearText buffer.
            Dim clearTextBlock(cryptoProvider.BlockSize - 1) As Byte

            ' Encrypt clearText to cryptoText block by block.
            Do
                Dim readCount As Integer = ReliableRead(clearTextStream, clearTextBlock, 0, cryptoProvider.BlockSize)
                ' readCount of zero is end of data.
                If readCount = 0 Then ' for
                    Exit Do
                End If

                ' Encrypt clearText to cryptoText.
                Dim cryptoTextBlock() As Byte = cryptoProvider.Encrypt(clearTextBlock)

                ' Write cryptoText block.
                cryptoTextStream.Write(cryptoTextBlock, 0, cryptoTextBlock.Length)
            Loop
            WriteStatus("   Closing '" & encryptedFilename & "'.")
        End Using ' end:using (Stream cryptoTextStream =
    End Using ' end:using (Stream clearTextStream =
End Using ' end:using (CryptoProvider cryptoProvider =
WriteStatus("   Done - Content encryption complete.")

Açıklamalar

clearTextVe cipherText ' n ' öğesine geçirilen ve arabelleklerin Encrypt Decrypt uzunluğu n * bayt olması gerekir BlockSize ; burada ' n ', 1 ' den büyük veya buna eşit bir tamsayıdır.The clearText and cipherText buffers passed to Encrypt and Decrypt must be n*BlockSize bytes in length, where 'n' is an integer greater than or equal to 1.

CanMergeBlocksİse false , öğesine geçirilen arabellekler Encrypt , geçirilen arabelleklerle aynı uzunlukta olmalıdır Decrypt .If CanMergeBlocks is false, buffers passed to Encrypt must be the same length as the buffers passed to Decrypt.

CanMergeBlocksİse true , geçirilen arabellekler Encrypt , geçirilen arabelleklerden farklı bir uzunlukta olabilir Decrypt (tüm arabellek boyutları hala her zaman bir BlockSize bayt uzunluğunda olmalıdır).If CanMergeBlocks is true, buffers passed to Encrypt can be a different length from the buffers passed to Decrypt (all buffer sizes must still always be a multiple of BlockSize bytes in length).

A BlockSize 'nın bir akış şifresi olduğunu, BlockSize 2 veya daha büyük bir blok şifresi olduğunu gösterir.A BlockSize of 1 indicates that the cipher is a stream cipher; a BlockSize of 2 or greater indicates a block cipher.

Şunlara uygulanır