TripleDESCryptoServiceProvider Class
Defines a wrapper object to access the cryptographic service provider (CSP) version of the TripleDES algorithm. This class cannot be inherited.
Assembly: mscorlib (in mscorlib.dll)
System.Security.Cryptography.SymmetricAlgorithm
System.Security.Cryptography.TripleDES
System.Security.Cryptography.TripleDESCryptoServiceProvider
| Name | Description | |
|---|---|---|
![]() | TripleDESCryptoServiceProvider() | Initializes a new instance of the TripleDESCryptoServiceProvider class. |
| Name | Description | |
|---|---|---|
![]() | BlockSize | Gets or sets the block size, in bits, of the cryptographic operation.(Inherited from SymmetricAlgorithm.) |
![]() | FeedbackSize | Gets or sets the feedback size, in bits, of the cryptographic operation.(Inherited from SymmetricAlgorithm.) |
![]() | IV | Gets or sets the initialization vector (IV) for the symmetric algorithm.(Inherited from SymmetricAlgorithm.) |
![]() | Key | |
![]() | KeySize | Gets or sets the size, in bits, of the secret key used by the symmetric algorithm.(Inherited from SymmetricAlgorithm.) |
![]() | LegalBlockSizes | Gets the block sizes, in bits, that are supported by the symmetric algorithm.(Inherited from SymmetricAlgorithm.) |
![]() | LegalKeySizes | Gets the key sizes, in bits, that are supported by the symmetric algorithm.(Inherited from SymmetricAlgorithm.) |
![]() | Mode | Gets or sets the mode for operation of the symmetric algorithm.(Inherited from SymmetricAlgorithm.) |
![]() | Padding | Gets or sets the padding mode used in the symmetric algorithm.(Inherited from SymmetricAlgorithm.) |
| Name | Description | |
|---|---|---|
![]() | Clear() | Releases all resources used by the SymmetricAlgorithm class.(Inherited from SymmetricAlgorithm.) |
![]() | CreateDecryptor() | Creates a symmetric decryptor object with the current Key property and initialization vector (IV).(Inherited from SymmetricAlgorithm.) |
![]() | CreateDecryptor(Byte(), Byte()) | Creates a symmetric TripleDES decryptor object with the specified key (Key) and initialization vector (IV).(Overrides SymmetricAlgorithm.CreateDecryptor(Byte(), Byte()).) |
![]() | CreateEncryptor() | Creates a symmetric encryptor object with the current Key property and initialization vector (IV).(Inherited from SymmetricAlgorithm.) |
![]() | CreateEncryptor(Byte(), Byte()) | Creates a symmetric TripleDES encryptor object with the specified key (Key) and initialization vector (IV).(Overrides SymmetricAlgorithm.CreateEncryptor(Byte(), Byte()).) |
![]() | Dispose() | Releases all resources used by the current instance of the SymmetricAlgorithm class.(Inherited from SymmetricAlgorithm.) |
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | GenerateIV() | Generates a random initialization vector (IV) to use for the algorithm.(Overrides SymmetricAlgorithm.GenerateIV().) |
![]() | GenerateKey() | Generates a random Key to be used for the algorithm.(Overrides SymmetricAlgorithm.GenerateKey().) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
![]() | ValidKeySize(Int32) | Determines whether the specified key size is valid for the current algorithm.(Inherited from SymmetricAlgorithm.) |
This algorithm supports key lengths from 128 bits to 192 bits in increments of 64 bits.
Note |
|---|
A newer symmetric encryption algorithm, Advanced Encryption Standard (AES), is available. Consider using the AesCryptoServiceProvider class instead of the TripleDESCryptoServiceProvider class. Use TripleDESCryptoServiceProvider only for compatibility with legacy applications and data. |
The following code example creates a TripleDESCryptoServiceProvider object and uses it to encrypt and decrypt data in a file.
Imports System.Security.Cryptography Imports System.Text Imports System.IO Module TrippleDESCSPSample Sub Main() Try ' Create a new TripleDESCryptoServiceProvider object ' to generate a key and initialization vector (IV). Dim tDESalg As New TripleDESCryptoServiceProvider ' Create a string to encrypt. Dim sData As String = "Here is some data to encrypt." Dim FileName As String = "CText.txt" ' Encrypt text to a file using the file name, key, and IV. EncryptTextToFile(sData, FileName, tDESalg.Key, tDESalg.IV) ' Decrypt the text from a file using the file name, key, and IV. Dim Final As String = DecryptTextFromFile(FileName, tDESalg.Key, tDESalg.IV) ' Display the decrypted string to the console. Console.WriteLine(Final) Catch e As Exception Console.WriteLine(e.Message) End Try End Sub Sub EncryptTextToFile(ByVal Data As String, ByVal FileName As String, ByVal Key() As Byte, ByVal IV() As Byte) Try ' Create or open the specified file. Dim fStream As FileStream = File.Open(FileName, FileMode.OpenOrCreate) ' Create a CryptoStream using the FileStream ' and the passed key and initialization vector (IV). Dim cStream As New CryptoStream(fStream, _ New TripleDESCryptoServiceProvider().CreateEncryptor(Key, IV), _ CryptoStreamMode.Write) ' Create a StreamWriter using the CryptoStream. Dim sWriter As New StreamWriter(cStream) ' Write the data to the stream ' to encrypt it. sWriter.WriteLine(Data) ' Close the streams and ' close the file. sWriter.Close() cStream.Close() fStream.Close() Catch e As CryptographicException Console.WriteLine("A Cryptographic error occurred: {0}", e.Message) Catch e As UnauthorizedAccessException Console.WriteLine("A file error occurred: {0}", e.Message) End Try End Sub Function DecryptTextFromFile(ByVal FileName As String, ByVal Key() As Byte, ByVal IV() As Byte) As String Try ' Create or open the specified file. Dim fStream As FileStream = File.Open(FileName, FileMode.OpenOrCreate) ' Create a CryptoStream using the FileStream ' and the passed key and initialization vector (IV). Dim cStream As New CryptoStream(fStream, _ New TripleDESCryptoServiceProvider().CreateDecryptor(Key, IV), _ CryptoStreamMode.Read) ' Create a StreamReader using the CryptoStream. Dim sReader As New StreamReader(cStream) ' Read the data from the stream ' to decrypt it. Dim val As String = sReader.ReadLine() ' Close the streams and ' close the file. sReader.Close() cStream.Close() fStream.Close() ' Return the string. Return val Catch e As CryptographicException Console.WriteLine("A Cryptographic error occurred: {0}", e.Message) Return Nothing Catch e As UnauthorizedAccessException Console.WriteLine("A file error occurred: {0}", e.Message) Return Nothing End Try End Function End Module
The following code example creates a TripleDESCryptoServiceProvider object and uses it to encrypt and decrypt data in memory.
Imports System.Security.Cryptography Imports System.Text Imports System.IO Module TrippleDESCSPSample Sub Main() Try ' Create a new TripleDESCryptoServiceProvider object ' to generate a key and initialization vector (IV). Dim tDESalg As New TripleDESCryptoServiceProvider ' Create a string to encrypt. Dim sData As String = "Here is some data to encrypt." ' Encrypt the string to an in-memory buffer. Dim Data As Byte() = EncryptTextToMemory(sData, tDESalg.Key, tDESalg.IV) ' Decrypt the buffer back to a string. Dim Final As String = DecryptTextFromMemory(Data, tDESalg.Key, tDESalg.IV) ' Display the decrypted string to the console. Console.WriteLine(Final) Catch e As Exception Console.WriteLine(e.Message) End Try End Sub Function EncryptTextToMemory(ByVal Data As String, ByVal Key() As Byte, ByVal IV() As Byte) As Byte() Try ' Create a MemoryStream. Dim mStream As New MemoryStream ' Create a CryptoStream using the MemoryStream ' and the passed key and initialization vector (IV). Dim cStream As New CryptoStream(mStream, _ New TripleDESCryptoServiceProvider().CreateEncryptor(Key, IV), _ CryptoStreamMode.Write) ' Convert the passed string to a byte array. Dim toEncrypt As Byte() = New ASCIIEncoding().GetBytes(Data) ' Write the byte array to the crypto stream and flush it. cStream.Write(toEncrypt, 0, toEncrypt.Length) cStream.FlushFinalBlock() ' Get an array of bytes from the ' MemoryStream that holds the ' encrypted data. Dim ret As Byte() = mStream.ToArray() ' Close the streams. cStream.Close() mStream.Close() ' Return the encrypted buffer. Return ret Catch e As CryptographicException Console.WriteLine("A Cryptographic error occurred: {0}", e.Message) Return Nothing End Try End Function Function DecryptTextFromMemory(ByVal Data() As Byte, ByVal Key() As Byte, ByVal IV() As Byte) As String Try ' Create a new MemoryStream using the passed ' array of encrypted data. Dim msDecrypt As New MemoryStream(Data) ' Create a CryptoStream using the MemoryStream ' and the passed key and initialization vector (IV). Dim csDecrypt As New CryptoStream(msDecrypt, _ New TripleDESCryptoServiceProvider().CreateDecryptor(Key, IV), _ CryptoStreamMode.Read) ' Create buffer to hold the decrypted data. Dim fromEncrypt(Data.Length - 1) As Byte ' Read the decrypted data out of the crypto stream ' and place it into the temporary buffer. csDecrypt.Read(fromEncrypt, 0, fromEncrypt.Length) 'Convert the buffer into a string and return it. Return New ASCIIEncoding().GetString(fromEncrypt) Catch e As CryptographicException Console.WriteLine("A Cryptographic error occurred: {0}", e.Message) Return Nothing End Try End Function End Module
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


