Поделиться через


SymmetricAlgorithm.CreateEncryptor Метод

Определение

Создает объект симметричного шифрования.

Перегрузки

Имя Описание
CreateEncryptor(Byte[], Byte[])

При переопределении в производном классе создает объект симметричного шифратора с указанным Key свойством и вектором инициализации (IV).

CreateEncryptor()

Создает объект симметричного шифратора с текущим Key свойством и вектором инициализации (IV).

CreateEncryptor(Byte[], Byte[])

Исходный код:
SymmetricAlgorithm.cs
Исходный код:
SymmetricAlgorithm.cs
Исходный код:
SymmetricAlgorithm.cs
Исходный код:
SymmetricAlgorithm.cs
Исходный код:
SymmetricAlgorithm.cs

При переопределении в производном классе создает объект симметричного шифратора с указанным Key свойством и вектором инициализации (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

Параметры

rgbKey
Byte[]

Секретный ключ, используемый для симметричного алгоритма.

rgbIV
Byte[]

Вектор инициализации, используемый для симметричного алгоритма.

Возвращаемое значение

Объект симметричного шифрования.

Комментарии

Используйте перегрузку CreateDecryptor с теми же параметрами, чтобы расшифровать результат этого метода.

См. также раздел

Применяется к

CreateEncryptor()

Исходный код:
SymmetricAlgorithm.cs
Исходный код:
SymmetricAlgorithm.cs
Исходный код:
SymmetricAlgorithm.cs
Исходный код:
SymmetricAlgorithm.cs
Исходный код:
SymmetricAlgorithm.cs

Создает объект симметричного шифратора с текущим Key свойством и вектором инициализации (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

Возвращаемое значение

Объект симметричного шифрования.

Примеры

В следующем примере шифруется строка с помощью объекта преобразования, возвращаемого методом CreateEncryptor .

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

Комментарии

Если текущее Key свойство имеет значение null, GenerateKey метод вызывается для создания нового случайного Key. Если текущее IV свойство имеет значение null, GenerateIV метод вызывается для создания нового случайного IV.

Используйте перегрузку CreateDecryptor с той же сигнатурой, чтобы расшифровать результат этого метода.

См. также раздел

Применяется к