CryptoProvider.BlockSize Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die Chiffreblockgröße in Bytes ab.
public:
property int BlockSize { int get(); };
public int BlockSize { get; }
member this.BlockSize : int
Public ReadOnly Property BlockSize As Integer
Eigenschaftswert
Die Chiffreblockgröße in Byte. Die Standardblockgröße für Advanced Encryption Standard (AES) ist 8.
Beispiele
Das folgende Beispiel zeigt, wie Die Eigenschaft beim Konvertieren von Klartextdaten in verschlüsselte Textdaten verwendet BlockSize wird.
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.")
Hinweise
Die clearText übergebenen EncryptDecrypt Und cipherText Puffer müssen n*BlockSize Bytes lang sein, wobei "n" eine ganze Zahl größer oder gleich 1 ist.
Ist CanMergeBlocks dies falseder Wert , müssen puffer, die übergeben werden Encrypt , die gleiche Länge aufweisen wie die puffer, die an Decrypt.
Wenn CanMergeBlocks ja true, können puffer, die Encrypt übergeben werden, eine andere Länge als die an die Puffer übergebenen Decrypt Puffer sein (alle Puffergrößen müssen immer noch ein Vielfaches von BlockSize Bytes länge sein).
A BlockSize of 1 indicates that the cipher is a stream cipher; a BlockSize of 2 or greater indicates a block cipher.