DESCryptoServiceProvider Класс

Определение

Определяет объект-оболочку для доступа к версии алгоритма DES, предоставляемой поставщиком служб шифрования (CSP).Defines a wrapper object to access the cryptographic service provider (CSP) version of the Data Encryption Standard (DES) algorithm. Этот класс не наследуется.This class cannot be inherited.

public ref class DESCryptoServiceProvider sealed : System::Security::Cryptography::DES
public sealed class DESCryptoServiceProvider : System.Security.Cryptography.DES
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DESCryptoServiceProvider : System.Security.Cryptography.DES
type DESCryptoServiceProvider = class
    inherit DES
[<System.Runtime.InteropServices.ComVisible(true)>]
type DESCryptoServiceProvider = class
    inherit DES
Public NotInheritable Class DESCryptoServiceProvider
Inherits DES
Наследование
DESCryptoServiceProvider
Атрибуты

Примеры

В следующем примере кода используется DESCryptoServiceProvider (реализация DES ) с указанным ключом ( Key ) и вектором инициализации ( IV ) для шифрования файла, заданного параметром inName .The following code example uses DESCryptoServiceProvider (an implementation of DES) with the specified key (Key) and initialization vector (IV) to encrypt a file specified by inName. Затем он выводит зашифрованный результат в файл, указанный параметром outName .It then outputs the encrypted result to the file specified by outName.

void EncryptData( String^ inName, String^ outName, array<Byte>^desKey, array<Byte>^desIV )
{
   
   //Create the file streams to handle the input and output files.
   FileStream^ fin = gcnew FileStream( inName,FileMode::Open,FileAccess::Read );
   FileStream^ fout = gcnew FileStream( outName,FileMode::OpenOrCreate,FileAccess::Write );
   fout->SetLength( 0 );
   
   //Create variables to help with read and write.
   array<Byte>^bin = gcnew array<Byte>(100);
   long rdlen = 0; //This is the total number of bytes written.

   long totlen = (long)fin->Length; //This is the total length of the input file.

   int len; //This is the number of bytes to be written at a time.

   DES^ des = gcnew DESCryptoServiceProvider;
   CryptoStream^ encStream = gcnew CryptoStream( fout,des->CreateEncryptor( desKey, desIV ),CryptoStreamMode::Write );
   Console::WriteLine( "Encrypting..." );
   
   //Read from the input file, then encrypt and write to the output file.
   while ( rdlen < totlen )
   {
      len = fin->Read( bin, 0, 100 );
      encStream->Write( bin, 0, len );
      rdlen = rdlen + len;
      Console::WriteLine( "{0} bytes processed", rdlen );
   }

   encStream->Close();
   fout->Close();
   fin->Close();
}

private static void EncryptData(String inName, String outName, byte[] desKey, byte[] desIV)
 {
     //Create the file streams to handle the input and output files.
     FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);
     FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);
     fout.SetLength(0);

     //Create variables to help with read and write.
     byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
     long rdlen = 0;              //This is the total number of bytes written.
     long totlen = fin.Length;    //This is the total length of the input file.
     int len;                     //This is the number of bytes to be written at a time.

     DES des = new DESCryptoServiceProvider();
     CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(desKey, desIV), CryptoStreamMode.Write);

     Console.WriteLine("Encrypting...");

     //Read from the input file, then encrypt and write to the output file.
     while(rdlen < totlen)
     {
         len = fin.Read(bin, 0, 100);
         encStream.Write(bin, 0, len);
         rdlen = rdlen + len;
         Console.WriteLine("{0} bytes processed", rdlen);
     }

     encStream.Close();
     fout.Close();
     fin.Close();
 }
Private Shared Sub EncryptData(inName As String, outName As String, _
desKey() As Byte, desIV() As Byte)

    'Create the file streams to handle the input and output files.
    Dim fin As New FileStream(inName, FileMode.Open, FileAccess.Read)
    Dim fout As New FileStream(outName, FileMode.OpenOrCreate, _
       FileAccess.Write)
    fout.SetLength(0)
    
    'Create variables to help with read and write.
    Dim bin(4096) As Byte 'This is intermediate storage for the encryption.
    Dim rdlen As Long = 0 'This is the total number of bytes written.
    Dim totlen As Long = fin.Length 'Total length of the input file.
    Dim len As Integer 'This is the number of bytes to be written at a time.
    Dim des As New DESCryptoServiceProvider()
    Dim encStream As New CryptoStream(fout, _
       des.CreateEncryptor(desKey, desIV), CryptoStreamMode.Write)
    
    Console.WriteLine("Encrypting...")
    
    'Read from the input file, then encrypt and write to the output file.
    While rdlen < totlen
        len = fin.Read(bin, 0, 4096)
        encStream.Write(bin, 0, len)
        rdlen = Convert.ToInt32(rdlen + len / des.BlockSize * des.BlockSize)
        Console.WriteLine("Processed {0} bytes, {1} bytes total", len, _
           rdlen)
    End While
    
    encStream.Close()
End Sub

Расшифровка может быть обработана таким же образом. Используйте CreateDecryptor вместо CreateEncryptor .Decryption can be handled in the same way; use CreateDecryptor instead of CreateEncryptor. Один и тот же ключ ( Key ) и вектор инициализации ( IV ), используемые для шифрования файла, необходимо использовать для его расшифровки.The same key (Key) and initialization vector (IV) used to encrypt the file must be used to decrypt it.

Комментарии

Этот алгоритм поддерживает длину ключа 64 бит.This algorithm supports a key length of 64 bits.

Важно!

Доступен более новый алгоритм симметричного шифрования, AES (AES).A newer symmetric encryption algorithm, Advanced Encryption Standard (AES), is available. AesВместо класса рекомендуется использовать класс DES .Consider using the Aes class instead of the DES class. Используйте DES только для обеспечения совместимости с устаревшими приложениями и данными.Use DES only for compatibility with legacy applications and data.

Конструкторы

DESCryptoServiceProvider()

Инициализирует новый экземпляр класса DESCryptoServiceProvider.Initializes a new instance of the DESCryptoServiceProvider class.

Поля

BlockSizeValue

Представляет размер блока криптографической операции (в битах).Represents the block size, in bits, of the cryptographic operation.

(Унаследовано от SymmetricAlgorithm)
FeedbackSizeValue

Представляет размер порции данных обратной связи для криптографической операции (в битах).Represents the feedback size, in bits, of the cryptographic operation.

(Унаследовано от SymmetricAlgorithm)
IVValue

Представляет вектор инициализации (IV) для алгоритма симметричного шифрования.Represents the initialization vector (IV) for the symmetric algorithm.

(Унаследовано от SymmetricAlgorithm)
KeySizeValue

Представляет размер секретного ключа (в битах), используемого алгоритмом симметричного шифрования.Represents the size, in bits, of the secret key used by the symmetric algorithm.

(Унаследовано от SymmetricAlgorithm)
KeyValue

Представляет секретный ключ для алгоритма симметричного шифрования.Represents the secret key for the symmetric algorithm.

(Унаследовано от SymmetricAlgorithm)
LegalBlockSizesValue

Задает размеры блоков (в битах), которые поддерживаются алгоритмом симметричного шифрования.Specifies the block sizes, in bits, that are supported by the symmetric algorithm.

(Унаследовано от SymmetricAlgorithm)
LegalKeySizesValue

Задает размеры ключа (в битах), которые поддерживаются алгоритмом симметричного шифрования.Specifies the key sizes, in bits, that are supported by the symmetric algorithm.

(Унаследовано от SymmetricAlgorithm)
ModeValue

Представляет режим шифрования, используемый в алгоритме симметричного шифрования.Represents the cipher mode used in the symmetric algorithm.

(Унаследовано от SymmetricAlgorithm)
PaddingValue

Представляет режим заполнения, используемый в алгоритме симметричного шифрования.Represents the padding mode used in the symmetric algorithm.

(Унаследовано от SymmetricAlgorithm)

Свойства

BlockSize

Получает или задает размер блока криптографической операции (в битах).Gets or sets the block size, in bits, of the cryptographic operation.

(Унаследовано от SymmetricAlgorithm)
FeedbackSize

Возвращает или задает размер ответа криптографической операции (в битах) для режимов шифрования "Обратная связь по шифру" (CFB) и "Выходная обратная связь" (OFB).Gets or sets the feedback size, in bits, of the cryptographic operation for the Cipher Feedback (CFB) and Output Feedback (OFB) cipher modes.

(Унаследовано от SymmetricAlgorithm)
IV

Получает или задает вектор инициализации (IV) для алгоритма симметричного шифрования.Gets or sets the initialization vector (IV) for the symmetric algorithm.

(Унаследовано от SymmetricAlgorithm)
Key

Получает или задает секретный ключ для алгоритма DES (DES).Gets or sets the secret key for the Data Encryption Standard (DES) algorithm.

(Унаследовано от DES)
KeySize

Получает или задает размер секретного ключа (в битах), используемого алгоритмом симметричного шифрования.Gets or sets the size, in bits, of the secret key used by the symmetric algorithm.

(Унаследовано от SymmetricAlgorithm)
LegalBlockSizes

Получает размеры блоков (в битах), которые поддерживаются алгоритмом симметричного шифрования.Gets the block sizes, in bits, that are supported by the symmetric algorithm.

(Унаследовано от SymmetricAlgorithm)
LegalKeySizes

Получает размеры ключа (в битах), которые поддерживаются алгоритмом симметричного шифрования.Gets the key sizes, in bits, that are supported by the symmetric algorithm.

(Унаследовано от SymmetricAlgorithm)
Mode

Получает или задает режим работы алгоритма симметричного шифрования.Gets or sets the mode for operation of the symmetric algorithm.

(Унаследовано от SymmetricAlgorithm)
Padding

Получает или задает режим заполнения, используемый в алгоритме симметричного шифрования.Gets or sets the padding mode used in the symmetric algorithm.

(Унаследовано от SymmetricAlgorithm)

Методы

Clear()

Освобождает все ресурсы, используемые классом SymmetricAlgorithm.Releases all resources used by the SymmetricAlgorithm class.

(Унаследовано от SymmetricAlgorithm)
CreateDecryptor()

Создает симметричный объект-дешифратор с текущим свойством Key и вектором инициализации (IV).Creates a symmetric decryptor object with the current Key property and initialization vector (IV).

CreateDecryptor()

Создает объект-дешифратор для алгоритма симметричного шифрования с текущим свойством Key и вектором инициализации (IV).Creates a symmetric decryptor object with the current Key property and initialization vector (IV).

(Унаследовано от SymmetricAlgorithm)
CreateDecryptor(Byte[], Byte[])

Создает объект-дешифратор для алгоритма симметричного шифрования DES с заданным ключом (Key) и вектором инициализации (IV).Creates a symmetric Data Encryption Standard (DES) decryptor object with the specified key (Key) and initialization vector (IV).

CreateEncryptor()

Создает симметричный объект-шифратор с текущим свойством Key и вектором инициализации (IV).Creates a symmetric encryptor object with the current Key property and initialization vector (IV).

CreateEncryptor()

Создает объект-шифратор для алгоритма симметричного шифрования с текущим свойством Key и вектором инициализации (IV).Creates a symmetric encryptor object with the current Key property and initialization vector (IV).

(Унаследовано от SymmetricAlgorithm)
CreateEncryptor(Byte[], Byte[])

Создает объект-шифратор для алгоритма симметричного шифрования DES с заданным ключом (Key) и вектором инициализации (IV).Creates a symmetric Data Encryption Standard (DES) encryptor object with the specified key (Key) and initialization vector (IV).

Dispose()

Освобождает все ресурсы, используемые текущим экземпляром класса SymmetricAlgorithm.Releases all resources used by the current instance of the SymmetricAlgorithm class.

(Унаследовано от SymmetricAlgorithm)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом SymmetricAlgorithm, а при необходимости освобождает также управляемые ресурсы.Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.

(Унаследовано от SymmetricAlgorithm)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GenerateIV()

Создает случайный вектор инициализации (IV), используемый для данного алгоритма.Generates a random initialization vector (IV) to use for the algorithm.

GenerateKey()

Создает случайный ключ (Key), используемый для данного алгоритма.Generates a random key (Key) to be used for the algorithm.

GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)
ValidKeySize(Int32)

Определяет, является ли заданный размер ключа допустимым для текущего алгоритма.Determines whether the specified key size is valid for the current algorithm.

(Унаследовано от SymmetricAlgorithm)

Явные реализации интерфейса

IDisposable.Dispose()

Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.

Освобождает неуправляемые ресурсы, используемые объектом SymmetricAlgorithm, а при необходимости освобождает также управляемые ресурсы.Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.

(Унаследовано от SymmetricAlgorithm)

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

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