DESCryptoServiceProvider Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Внимание
Derived cryptographic types are obsolete. Use the Create method on the base type instead.
Определяет объект-оболочку для доступа к версии поставщика криптографических служб (CSP) алгоритма шифрования данных уровня "СтандартныйDES". Этот класс не наследуется.
public ref class DESCryptoServiceProvider sealed : System::Security::Cryptography::DES
[System.Obsolete("Derived cryptographic types are obsolete. Use the Create method on the base type instead.", DiagnosticId="SYSLIB0021", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class DESCryptoServiceProvider : 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
[<System.Obsolete("Derived cryptographic types are obsolete. Use the Create method on the base type instead.", DiagnosticId="SYSLIB0021", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type DESCryptoServiceProvider = class
inherit DES
type DESCryptoServiceProvider = class
inherit DES
[<System.Runtime.InteropServices.ComVisible(true)>]
type DESCryptoServiceProvider = class
inherit DES
Public NotInheritable Class DESCryptoServiceProvider
Inherits DES
- Наследование
- Атрибуты
Примеры
В следующем примере кода используется DESCryptoServiceProvider (реализацияDES) с указанным ключом () и вектором инициализации (KeyIV) для шифрования файла, указанного в inNameфайле. Затем он выводит зашифрованный результат в файл, указанный в outNameфайле.
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
Расшифровка может обрабатываться таким же образом; вместо CreateDecryptorCreateEncryptor. Тот же ключ () и вектор инициализации (KeyIV), используемый для шифрования файла, должен использоваться для расшифровки файла.
Комментарии
Этот алгоритм поддерживает длину ключа 64 бита.
Important
Доступен более новый алгоритм симметричного шифрования , расширенный стандарт шифрования (AES). Рекомендуется использовать Aes класс вместо DES класса. Используйте DES только для совместимости с устаревшими приложениями и данными.
Конструкторы
| Имя | Описание |
|---|---|
| DESCryptoServiceProvider() |
Устаревшие..
Инициализирует новый экземпляр класса DESCryptoServiceProvider. |
Поля
| Имя | Описание |
|---|---|
| BlockSizeValue |
Устаревшие..
Представляет размер блока в битах криптографической операции. (Унаследовано от SymmetricAlgorithm) |
| FeedbackSizeValue |
Устаревшие..
Представляет размер обратной связи (в битах) криптографической операции. (Унаследовано от SymmetricAlgorithm) |
| IVValue |
Устаревшие..
Представляет вектор инициализации (IV) для симметричного алгоритма. (Унаследовано от SymmetricAlgorithm) |
| KeySizeValue |
Устаревшие..
Представляет размер в битах секретного ключа, используемого симметричным алгоритмом. (Унаследовано от SymmetricAlgorithm) |
| KeyValue |
Устаревшие..
Представляет секретный ключ для симметричного алгоритма. (Унаследовано от SymmetricAlgorithm) |
| LegalBlockSizesValue |
Устаревшие..
Указывает размеры блоков в битах, поддерживаемые симметричным алгоритмом. (Унаследовано от SymmetricAlgorithm) |
| LegalKeySizesValue |
Устаревшие..
Указывает размеры ключей в битах, поддерживаемые симметричным алгоритмом. (Унаследовано от SymmetricAlgorithm) |
| ModeValue |
Устаревшие..
Представляет режим шифра, используемый в симметричном алгоритме. (Унаследовано от SymmetricAlgorithm) |
| PaddingValue |
Устаревшие..
Представляет режим заполнения, используемый в симметричном алгоритме. (Унаследовано от SymmetricAlgorithm) |
Свойства
| Имя | Описание |
|---|---|
| BlockSize |
Устаревшие..
Возвращает или задает размер блока в битах криптографической операции. (Унаследовано от SymmetricAlgorithm) |
| FeedbackSize |
Устаревшие..
Возвращает или задает размер обратной связи (в битах) криптографической операции для режимов шифрования обратной связи (CFB) и выходных отзывов (OFB). (Унаследовано от SymmetricAlgorithm) |
| IV |
Устаревшие..
Возвращает или задает вектор инициализации (IV) для симметричного алгоритма. (Унаследовано от SymmetricAlgorithm) |
| Key |
Устаревшие..
Возвращает или задает секретный ключ для алгоритма шифрования данных уровня "Стандартный" (DES). (Унаследовано от DES) |
| KeySize |
Устаревшие..
Возвращает или задает размер в битах секретного ключа, используемого симметричным алгоритмом. (Унаследовано от SymmetricAlgorithm) |
| LegalBlockSizes |
Устаревшие..
Возвращает размеры блоков в битах, поддерживаемые симметричным алгоритмом. (Унаследовано от SymmetricAlgorithm) |
| LegalKeySizes |
Устаревшие..
Возвращает размеры ключей в битах, поддерживаемые симметричным алгоритмом. (Унаследовано от SymmetricAlgorithm) |
| Mode |
Устаревшие..
Возвращает или задает режим для работы симметричного алгоритма. (Унаследовано от SymmetricAlgorithm) |
| Padding |
Устаревшие..
Возвращает или задает режим заполнения, используемый в симметричном алгоритме. (Унаследовано от SymmetricAlgorithm) |
Методы
| Имя | Описание |
|---|---|
| Clear() |
Устаревшие..
Освобождает все ресурсы, используемые классом SymmetricAlgorithm . (Унаследовано от SymmetricAlgorithm) |
| CreateDecryptor() |
Устаревшие..
Создает объект симметричного расшифровки с текущим Key свойством и вектором инициализации (IV). |
| CreateDecryptor() |
Устаревшие..
Создает объект симметричного расшифровки с текущим Key свойством и вектором инициализации (IV). (Унаследовано от SymmetricAlgorithm) |
| CreateDecryptor(Byte[], Byte[]) |
Устаревшие..
Создает объект расшифровки симметричного шифрования данных (DES) с указанным ключом (Key) и вектором инициализации (IV). |
| CreateEncryptor() |
Устаревшие..
Создает объект симметричного шифратора с текущим Key свойством и вектором инициализации (IV). |
| CreateEncryptor() |
Устаревшие..
Создает объект симметричного шифратора с текущим Key свойством и вектором инициализации (IV). (Унаследовано от SymmetricAlgorithm) |
| CreateEncryptor(Byte[], Byte[]) |
Устаревшие..
Создает объект шифрования симметричного шифрования данных () с указанным ключом (DESKey) и вектором инициализации (IV). |
| DecryptCbc(Byte[], Byte[], PaddingMode) |
Устаревшие..
Расшифровывает данные с помощью режима CBC с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode) |
Устаревшие..
Расшифровывает данные с помощью режима CBC с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Устаревшие..
Расшифровывает данные в указанный буфер с помощью режима CBC с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| DecryptCfb(Byte[], Byte[], PaddingMode, Int32) |
Устаревшие..
Расшифровывает данные с помощью режима CFB с указанным режимом заполнения и размером обратной связи. (Унаследовано от SymmetricAlgorithm) |
| DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32) |
Устаревшие..
Расшифровывает данные с помощью режима CFB с указанным режимом заполнения и размером обратной связи. (Унаследовано от SymmetricAlgorithm) |
| DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Устаревшие..
Расшифровывает данные в указанный буфер с помощью режима CFB с указанным режимом заполнения и размером обратной связи. (Унаследовано от SymmetricAlgorithm) |
| DecryptEcb(Byte[], PaddingMode) |
Устаревшие..
Расшифровывает данные с помощью режима ECB с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| DecryptEcb(ReadOnlySpan<Byte>, PaddingMode) |
Устаревшие..
Расшифровывает данные с помощью режима ECB с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Устаревшие..
Расшифровывает данные в указанный буфер, используя режим ECB с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| Dispose() |
Устаревшие..
Освобождает все ресурсы, используемые текущим экземпляром класса SymmetricAlgorithm. (Унаследовано от SymmetricAlgorithm) |
| Dispose(Boolean) |
Устаревшие..
Освобождает неуправляемые ресурсы, используемые SymmetricAlgorithm и при необходимости освобождает управляемые ресурсы. (Унаследовано от SymmetricAlgorithm) |
| EncryptCbc(Byte[], Byte[], PaddingMode) |
Устаревшие..
Шифрует данные с помощью режима CBC с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode) |
Устаревшие..
Шифрует данные с помощью режима CBC с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Устаревшие..
Шифрует данные в указанный буфер с помощью режима CBC с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| EncryptCfb(Byte[], Byte[], PaddingMode, Int32) |
Устаревшие..
Шифрует данные с помощью режима CFB с указанным режимом заполнения и размером обратной связи. (Унаследовано от SymmetricAlgorithm) |
| EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32) |
Устаревшие..
Шифрует данные с помощью режима CFB с указанным режимом заполнения и размером обратной связи. (Унаследовано от SymmetricAlgorithm) |
| EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Устаревшие..
Шифрует данные в указанный буфер с помощью режима CFB с указанным режимом заполнения и размером обратной связи. (Унаследовано от SymmetricAlgorithm) |
| EncryptEcb(Byte[], PaddingMode) |
Устаревшие..
Шифрует данные с помощью режима ECB с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| EncryptEcb(ReadOnlySpan<Byte>, PaddingMode) |
Устаревшие..
Шифрует данные с помощью режима ECB с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Устаревшие..
Шифрует данные в указанный буфер, используя режим ECB с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| Equals(Object) |
Устаревшие..
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GenerateIV() |
Устаревшие..
Создает вектор случайной инициализации (IV), используемый для алгоритма. |
| GenerateKey() |
Устаревшие..
Создает случайный ключ (Key), используемый для алгоритма. |
| GetCiphertextLengthCbc(Int32, PaddingMode) |
Устаревшие..
Возвращает длину зашифрованного текста с заданным режимом заполнения и длиной открытого текста в режиме CBC. (Унаследовано от SymmetricAlgorithm) |
| GetCiphertextLengthCfb(Int32, PaddingMode, Int32) |
Устаревшие..
Возвращает длину шифра с заданным режимом заполнения и длиной открытого текста в режиме CFB. (Унаследовано от SymmetricAlgorithm) |
| GetCiphertextLengthEcb(Int32, PaddingMode) |
Устаревшие..
Возвращает длину шифра с заданным режимом заполнения и длиной открытого текста в режиме ECB. (Унаследовано от SymmetricAlgorithm) |
| GetHashCode() |
Устаревшие..
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Устаревшие..
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Устаревшие..
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| SetKey(ReadOnlySpan<Byte>) |
Устаревшие..
Задает ключ для этого экземпляра. (Унаследовано от SymmetricAlgorithm) |
| SetKeyCore(ReadOnlySpan<Byte>) |
Устаревшие..
Задает ключ для этого экземпляра. (Унаследовано от SymmetricAlgorithm) |
| ToString() |
Устаревшие..
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode) |
Устаревшие..
Пытается расшифровать данные в указанный буфер, используя режим CBC с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Устаревшие..
При переопределении в производном классе пытается расшифровать данные в указанный буфер, используя режим CBC с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32) |
Устаревшие..
Пытается расшифровать данные в указанный буфер, используя режим CFB с указанным режимом заполнения и размером обратной связи. (Унаследовано от SymmetricAlgorithm) |
| TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32) |
Устаревшие..
При переопределении в производном классе пытается расшифровать данные в указанный буфер, используя режим CFB с указанным режимом заполнения и размером обратной связи. (Унаследовано от SymmetricAlgorithm) |
| TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Устаревшие..
Пытается расшифровать данные в указанный буфер, используя режим ECB с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Устаревшие..
При переопределении в производном классе пытается расшифровать данные в указанный буфер, используя режим ECB с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode) |
Устаревшие..
Пытается зашифровать данные в указанный буфер, используя режим CBC с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Устаревшие..
При переопределении в производном классе пытается зашифровать данные в указанный буфер, используя режим CBC с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32) |
Устаревшие..
Пытается зашифровать данные в указанный буфер, используя режим CFB с указанным режимом заполнения и размером обратной связи. (Унаследовано от SymmetricAlgorithm) |
| TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32) |
Устаревшие..
При переопределении в производном классе пытается зашифровать данные в указанный буфер, используя режим CFB с указанным режимом заполнения и размером обратной связи. (Унаследовано от SymmetricAlgorithm) |
| TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Устаревшие..
Пытается зашифровать данные в указанный буфер, используя режим ECB с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Устаревшие..
При переопределении в производном классе пытается зашифровать данные в указанный буфер, используя режим ECB с указанным режимом заполнения. (Унаследовано от SymmetricAlgorithm) |
| ValidKeySize(Int32) |
Устаревшие..
Определяет, является ли указанный размер ключа допустимым для текущего алгоритма. (Унаследовано от SymmetricAlgorithm) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IDisposable.Dispose() |
Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.
Устаревшие..
Освобождает неуправляемые ресурсы, используемые SymmetricAlgorithm и при необходимости освобождает управляемые ресурсы. (Унаследовано от SymmetricAlgorithm) |