CryptoProvider.Decrypt(Byte[]) メソッド

定義

暗号テキストをクリア テキストに復号化します。

public:
 cli::array <System::Byte> ^ Decrypt(cli::array <System::Byte> ^ cryptoText);
public byte[] Decrypt (byte[] cryptoText);
member this.Decrypt : byte[] -> byte[]
Public Function Decrypt (cryptoText As Byte()) As Byte()

パラメーター

cryptoText
Byte[]

復号化する暗号テキスト。

戻り値

Byte[]

cryptoText の復号化されたクリア テキスト。

例外

cipherText が null です。

復号化の権限が付与されていません。

次の例は、このメソッドを Decrypt 使用して暗号化されたデータを暗号化されていないデータに変換する方法を示しています。

byte[] imageBuffer;
using (Stream cipherTextStream = File.OpenRead(encryptedFile))
{
    byte[] contentLengthByteBuffer = new byte[sizeof(Int32)];
    // Read the length of the source content file
    // from the first four bytes of the encrypted file.
    ReliableRead(cipherTextStream, contentLengthByteBuffer,
                 0, sizeof(Int32));

    // Allocate the clearText buffer.
    int contentLength =
        BitConverter.ToInt32(contentLengthByteBuffer, 0);
    imageBuffer = new byte[contentLength];

    // Allocate the cipherText block.
    byte[] cipherTextBlock =
        new byte[cryptoProvider.BlockSize];

    // decrypt cipherText to clearText block by block.
    int imageBufferIndex = 0;
    for ( ; ; )
    {   // Read cipherText block.
        int readCount = ReliableRead(
                            cipherTextStream,
                            cipherTextBlock, 0,
                            cryptoProvider.BlockSize);
        // readCount of zero is end of data.
        if (readCount == 0)
            break; // for

        // Decrypt cipherText to clearText.
        byte[] clearTextBlock =
            cryptoProvider.Decrypt(cipherTextBlock);

        // Copy the clearTextBlock to the imageBuffer.
        int copySize = Math.Min(clearTextBlock.Length,
                            contentLength-imageBufferIndex);
        Array.Copy(clearTextBlock, 0,
            imageBuffer, imageBufferIndex, copySize);
        imageBufferIndex += copySize;
    }
}// end:using (Stream cipherTextStream = (close/dispose)
Dim imageBuffer() As Byte
Using cipherTextStream As Stream = File.OpenRead(encryptedFile)
    Dim expression As Int32
    Dim contentLengthByteBuffer(Len(expression) - 1) As Byte
    ' Read the length of the source content file
    ' from the first four bytes of the encrypted file.
    ReliableRead(cipherTextStream, contentLengthByteBuffer, 0, Len(expression))

    ' Allocate the clearText buffer.
    Dim contentLength As Integer = BitConverter.ToInt32(contentLengthByteBuffer, 0)
    imageBuffer = New Byte(contentLength - 1) {}

    ' Allocate the cipherText block.
    Dim cipherTextBlock(cryptoProvider.BlockSize - 1) As Byte

    ' decrypt cipherText to clearText block by block.
    Dim imageBufferIndex As Integer = 0
    Do
        Dim readCount As Integer = ReliableRead(cipherTextStream, cipherTextBlock, 0, cryptoProvider.BlockSize)
        ' readCount of zero is end of data.
        If readCount = 0 Then
            Exit Do ' for
        End If

        ' Decrypt cipherText to clearText.
        Dim clearTextBlock() As Byte = cryptoProvider.Decrypt(cipherTextBlock)

        ' Copy the clearTextBlock to the imageBuffer.
        Dim copySize As Integer = Math.Min(clearTextBlock.Length, contentLength - imageBufferIndex)
        Array.Copy(clearTextBlock, 0, imageBuffer, imageBufferIndex, copySize)
        imageBufferIndex += copySize
    Loop
End Using ' end:using (Stream cipherTextStream = (close/dispose)

適用対象

こちらもご覧ください