Aracılığıyla paylaş


CryptoProvider.Encrypt(Byte[]) Yöntem

Tanım

Metni şifrelemek için düz metni şifreler.

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

Parametreler

clearText
Byte[]

Şifrelenmesi gereken düz metin içeriği.

Döndürülenler

Byte[]

Verilen clearTextöğesinin şifrelenmiş şifre metni.

Özel durumlar

clearText null değeridir.

Şifrelemeye izin verilmiyor.

Örnekler

Aşağıdaki örnekte, düz metin verilerini şifrelenmiş metin verilerine dönüştürmek için yönteminin nasıl kullanılacağı Encrypt gösterilmektedir.

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

Arabelleğin clearText bayt uzunluğu, şifre BlockSize özelliğinin bir katı olmalıdır.

Dijital hak yönetimi sistemi AES blok şifrelemesini kullanır. AES ile bloklar birbirinden bağımsız olarak şifrelenir, böylece iki özdeş net metin bloğu aynı şifre metin sonuçları üretir. Bağımsız blok şifrelemesinden kaynaklanan olası şifre çözme tehditlerini en aza indirmek için uygulamalar, özdeş net metin bloklarının şifrelenmesini önlemek için içeriği (sıkıştırma gibi) değiştirmeye yönelik yöntemler kullanmalıdır.

Şunlara uygulanır

Ayrıca bkz.