SymmetricAlgorithm.CreateEncryptor Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Creates a symmetric encryptor object.
Overloads
CreateEncryptor() |
Creates a symmetric encryptor object with the current Key property and initialization vector (IV). |
CreateEncryptor(Byte[], Byte[]) |
When overridden in a derived class, creates a symmetric encryptor object with the specified Key property and initialization vector (IV). |
CreateEncryptor()
- Source:
- SymmetricAlgorithm.cs
- Source:
- SymmetricAlgorithm.cs
- Source:
- SymmetricAlgorithm.cs
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
Returns
A symmetric encryptor object.
Examples
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:" + 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
Remarks
If the current Key property is null
, the GenerateKey method is called to create a new random Key. If the current IV property is null
, the GenerateIV method is called to create a new random IV.
Use the CreateDecryptor overload with the same signature to decrypt the result of this method.
See also
Applies to
CreateEncryptor(Byte[], Byte[])
- Source:
- SymmetricAlgorithm.cs
- Source:
- SymmetricAlgorithm.cs
- Source:
- SymmetricAlgorithm.cs
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
Parameters
- rgbKey
- Byte[]
The secret key to use for the symmetric algorithm.
- rgbIV
- Byte[]
The initialization vector to use for the symmetric algorithm.
Returns
A symmetric encryptor object.
Remarks
Use the CreateDecryptor overload with the same parameters to decrypt the result of this method.