SymmetricAlgorithm.CreateEncryptor SymmetricAlgorithm.CreateEncryptor SymmetricAlgorithm.CreateEncryptor SymmetricAlgorithm.CreateEncryptor Method

定义

创建对称加密器对象。Creates a symmetric encryptor object.

重载

CreateEncryptor() CreateEncryptor() CreateEncryptor() CreateEncryptor()

用当前的 Key 属性和初始化向量 (IV) 创建对称加密器对象。Creates a symmetric encryptor object with the current Key property and initialization vector (IV).

CreateEncryptor(Byte[], Byte[]) CreateEncryptor(Byte[], Byte[]) CreateEncryptor(Byte[], Byte[]) CreateEncryptor(Byte[], Byte[])

当在派生类中重写时,用指定的 Key 属性和初始化向量 (IV) 创建对称加密器对象。When overridden in a derived class, creates a symmetric encryptor object with the specified Key property and initialization vector (IV).

CreateEncryptor() CreateEncryptor() CreateEncryptor() CreateEncryptor()

用当前的 Key 属性和初始化向量 (IV) 创建对称加密器对象。Creates a symmetric encryptor object with the current Key property and initialization vector (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

返回

对称加密器对象。A symmetric encryptor object.

示例

下面的示例使用从CreateEncryptor方法返回的转换对象对字符串进行加密。The following example encrypts a string using the transform object returned from the CreateEncryptor method.

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:" + vbNewLine)
         Console.WriteLine(Convert.ToBase64String(encQuote))

         Console.WriteLine(vbNewLine + "Decrypted Quote:" + vbNewLine)
         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属性为nullGenerateKey则调用方法以创建新的随机KeyIf the current Key property is null, the GenerateKey method is called to create a new random Key. 如果当前IV属性为nullGenerateIV则调用方法以创建新的随机IVIf the current IV property is null, the GenerateIV method is called to create a new random IV.

使用具有相同签名的重载来解密此方法的结果。CreateDecryptorUse the CreateDecryptor overload with the same signature to decrypt the result of this method.

另请参阅

CreateEncryptor(Byte[], Byte[]) CreateEncryptor(Byte[], Byte[]) CreateEncryptor(Byte[], Byte[]) CreateEncryptor(Byte[], Byte[])

当在派生类中重写时,用指定的 Key 属性和初始化向量 (IV) 创建对称加密器对象。When overridden in a derived class, creates a symmetric encryptor object with the specified Key property and initialization vector (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);
abstract member CreateEncryptor : byte[] * byte[] -> System.Security.Cryptography.ICryptoTransform
Public MustOverride Function CreateEncryptor (rgbKey As Byte(), rgbIV As Byte()) As ICryptoTransform

参数

rgbKey
Byte[]

用于对称算法的密钥。The secret key to use for the symmetric algorithm.

rgbIV
Byte[]

用于对称算法的初始化向量。The initialization vector to use for the symmetric algorithm.

返回

对称加密器对象。A symmetric encryptor object.

注解

使用具有相同参数的重载来解密此方法的结果。CreateDecryptorUse the CreateDecryptor overload with the same parameters to decrypt the result of this method.

另请参阅

适用于