Udostępnij za pośrednictwem


SymmetricAlgorithm.CreateEncryptor Metoda

Definicja

Tworzy obiekt szyfrora symetrycznego.

Przeciążenia

CreateEncryptor()

Tworzy obiekt szyfrowania symetrycznego z bieżącą Key właściwością i wektorem inicjowania (IV).

CreateEncryptor(Byte[], Byte[])

Po zastąpieniu w klasie pochodnej tworzy obiekt szyfrowania symetrycznego z określoną Key właściwością i wektorem inicjowania (IV).

CreateEncryptor()

Źródło:
SymmetricAlgorithm.cs
Źródło:
SymmetricAlgorithm.cs
Źródło:
SymmetricAlgorithm.cs

Tworzy obiekt szyfrowania symetrycznego z bieżącą Key właściwością i wektorem inicjowania (IV).

public:
 virtual System::Security::Cryptography::ICryptoTransform ^ CreateEncryptor();
public virtual System.Security.Cryptography.ICryptoTransform CreateEncryptor ();
abstract member CreateEncryptor : unit -> System.Security.Cryptography.ICryptoTransform
override this.CreateEncryptor : unit -> System.Security.Cryptography.ICryptoTransform
Public Overridable Function CreateEncryptor () As ICryptoTransform

Zwraca

Obiekt szyfrowania symetrycznego.

Przykłady

Poniższy przykład szyfruje ciąg przy użyciu obiektu transform zwróconego CreateEncryptor z metody .

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Text;

class EncryptorExample
{
public:
     static void Main()
     {
         TripleDESCryptoServiceProvider^ tdesCSP = gcnew TripleDESCryptoServiceProvider();

         tdesCSP->GenerateKey();
         tdesCSP->GenerateIV();
         String^ quote =
             "Things may come to those who wait, but only the " +
             "things left by those who hustle. -- Abraham Lincoln";
         array<Byte>^ encQuote = EncryptString(tdesCSP, quote);

         Console::WriteLine("Encrypted Quote:\n");
         Console::WriteLine(Convert::ToBase64String(encQuote));

         Console::WriteLine("\nDecrypted Quote:\n");
         Console::WriteLine(DecryptBytes(tdesCSP, encQuote));
     }

public:
     static array<Byte>^ EncryptString(SymmetricAlgorithm^ symAlg, String^ inString)
     {
         array<Byte>^ inBlock = UnicodeEncoding::Unicode->GetBytes(inString);
         ICryptoTransform^ xfrm = symAlg->CreateEncryptor();
         array<Byte>^ outBlock = xfrm->TransformFinalBlock(inBlock, 0, inBlock->Length);

         return outBlock;
     }

     static String^ DecryptBytes(SymmetricAlgorithm^ symAlg, array<Byte>^ inBytes)
     {
         ICryptoTransform^ xfrm = symAlg->CreateDecryptor();
         array<Byte>^ outBlock = xfrm->TransformFinalBlock(inBytes, 0, inBytes->Length);

         return UnicodeEncoding::Unicode->GetString(outBlock);
     }
};

int main()
{
    EncryptorExample::Main();
}
using System;
using System.Security.Cryptography;
using System.Text;

class EncryptorExample
{
     private static string quote =
         "Things may come to those who wait, but only the " +
         "things left by those who hustle. -- Abraham Lincoln";

     public static void Main()
     {
         AesCryptoServiceProvider aesCSP = new AesCryptoServiceProvider();

         aesCSP.GenerateKey();
         aesCSP.GenerateIV();
         byte[] encQuote = EncryptString(aesCSP, quote);

         Console.WriteLine("Encrypted Quote:\n");
         Console.WriteLine(Convert.ToBase64String(encQuote));

         Console.WriteLine("\nDecrypted Quote:\n");
         Console.WriteLine(DecryptBytes(aesCSP, encQuote));
     }

     public static byte[] EncryptString(SymmetricAlgorithm symAlg, string inString)
     {
         byte[] inBlock = UnicodeEncoding.Unicode.GetBytes(inString);
         ICryptoTransform xfrm = symAlg.CreateEncryptor();
         byte[] outBlock = xfrm.TransformFinalBlock(inBlock, 0, inBlock.Length);

         return outBlock;
     }

     public static string DecryptBytes(SymmetricAlgorithm symAlg, byte[] inBytes)
     {
         ICryptoTransform xfrm = symAlg.CreateDecryptor();
         byte[] outBlock = xfrm.TransformFinalBlock(inBytes, 0, inBytes.Length);

         return UnicodeEncoding.Unicode.GetString(outBlock);
     }
}
Imports System.Security.Cryptography
Imports System.Text

Class EncryptorExample
     Private Shared quote As String = _
         "Things may come to those who wait, but only the " + _
         "things left by those who hustle. -- Abraham Lincoln"

     Public Shared Sub Main()
         Dim aesCSP As New AesCryptoServiceProvider()

         aesCSP.GenerateKey()
         aesCSP.GenerateIV()
         Dim encQuote() As Byte = EncryptString(aesCSP, quote)

         Console.WriteLine("Encrypted Quote:" + Environment.NewLine)
         Console.WriteLine(Convert.ToBase64String(encQuote))

         Console.WriteLine(Environment.NewLine + "Decrypted Quote:" + Environment.NewLine)
         Console.WriteLine(DecryptBytes(aesCSP, encQuote))
     End Sub

     Public Shared Function EncryptString(symAlg As SymmetricAlgorithm, inString As String) As Byte()
         Dim inBlock() As Byte = UnicodeEncoding.Unicode.GetBytes(inString)
         Dim xfrm As ICryptoTransform = symAlg.CreateEncryptor()
         Dim outBlock() As Byte = xfrm.TransformFinalBlock(inBlock, 0, inBlock.Length)

         Return outBlock
     End Function

     Public Shared Function DecryptBytes(symAlg As SymmetricAlgorithm, inBytes() As Byte) As String
         Dim xfrm As ICryptoTransform = symAlg.CreateDecryptor()
         Dim outBlock() As Byte = xfrm.TransformFinalBlock(inBytes, 0, inBytes.Length)

         return UnicodeEncoding.Unicode.GetString(outBlock)
     End Function
End Class

Uwagi

Jeśli bieżąca Key właściwość to null, metoda jest wywoływana GenerateKey w celu utworzenia nowego losowego Keyobiektu . Jeśli bieżąca IV właściwość to null, metoda jest wywoływana GenerateIV w celu utworzenia nowego losowego IVobiektu .

Użyj przeciążenia CreateDecryptor z tym samym podpisem, aby odszyfrować wynik tej metody.

Zobacz też

Dotyczy

CreateEncryptor(Byte[], Byte[])

Źródło:
SymmetricAlgorithm.cs
Źródło:
SymmetricAlgorithm.cs
Źródło:
SymmetricAlgorithm.cs

Po zastąpieniu w klasie pochodnej tworzy obiekt szyfrowania symetrycznego z określoną Key właściwością i wektorem inicjowania (IV).

public:
 abstract System::Security::Cryptography::ICryptoTransform ^ CreateEncryptor(cli::array <System::Byte> ^ rgbKey, cli::array <System::Byte> ^ rgbIV);
public abstract System.Security.Cryptography.ICryptoTransform CreateEncryptor (byte[] rgbKey, byte[]? rgbIV);
public abstract System.Security.Cryptography.ICryptoTransform CreateEncryptor (byte[] rgbKey, byte[] rgbIV);
abstract member CreateEncryptor : byte[] * byte[] -> System.Security.Cryptography.ICryptoTransform
Public MustOverride Function CreateEncryptor (rgbKey As Byte(), rgbIV As Byte()) As ICryptoTransform

Parametry

rgbKey
Byte[]

Klucz tajny do użycia dla algorytmu symetrycznego.

rgbIV
Byte[]

Wektor inicjowania do użycia dla algorytmu symetrycznego.

Zwraca

Obiekt szyfrowania symetrycznego.

Uwagi

Użyj przeciążenia CreateDecryptor z tymi samymi parametrami, aby odszyfrować wynik tej metody.

Zobacz też

Dotyczy