Sdílet prostřednictvím


DESCryptoServiceProvider Třída

Definice

Upozornění

Derived cryptographic types are obsolete. Use the Create method on the base type instead.

Definuje objekt obálky pro přístup k verzi zprostředkovatele kryptografických služeb (CSP) algoritmu Standard šifrování dat (DES). Tato třída se nemůže dědit.

public ref class DESCryptoServiceProvider sealed : System::Security::Cryptography::DES
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}")]
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.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
[<System.Runtime.InteropServices.ComVisible(true)>]
type DESCryptoServiceProvider = class
    inherit DES
Public NotInheritable Class DESCryptoServiceProvider
Inherits DES
Dědičnost
DESCryptoServiceProvider
Atributy

Příklady

Následující příklad kódu používá (implementaci DES) se zadaným klíčem (Key) a inicializačním vektorem (IV) k šifrování souboru určeného parametrem inName.DESCryptoServiceProvider Zašifrovaný výsledek pak vypíše do souboru určeného parametrem 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

Dešifrování lze zpracovat stejným způsobem; použijte CreateDecryptor místo .CreateEncryptor K jeho dešifrování se musí použít stejný klíč (Key) a inicializační vektor (IV) použitý k zašifrování souboru.

Poznámky

Tento algoritmus podporuje délku klíče 64 bitů.

Důležité

K dispozici je novější algoritmus symetrického šifrování, AES (Advanced Encryption Standard). Zvažte použití Aes třídy místo DES třídy . Používejte DES jenom kvůli kompatibilitě se staršími aplikacemi a daty.

Konstruktory

DESCryptoServiceProvider()
Zastaralé.

Inicializuje novou instanci DESCryptoServiceProvider třídy .

Pole

BlockSizeValue
Zastaralé.

Představuje velikost bloku kryptografické operace v bitech.

(Zděděno od SymmetricAlgorithm)
FeedbackSizeValue
Zastaralé.

Představuje velikost zpětné vazby v bitech kryptografické operace.

(Zděděno od SymmetricAlgorithm)
IVValue
Zastaralé.

Představuje inicializační vektor (IV) symetrického algoritmu.

(Zděděno od SymmetricAlgorithm)
KeySizeValue
Zastaralé.

Představuje velikost tajného klíče používaného symetrickým algoritmem v bitech.

(Zděděno od SymmetricAlgorithm)
KeyValue
Zastaralé.

Představuje tajný klíč symetrického algoritmu.

(Zděděno od SymmetricAlgorithm)
LegalBlockSizesValue
Zastaralé.

Určuje velikosti bloků v bitech, které jsou podporovány symetrickým algoritmem.

(Zděděno od SymmetricAlgorithm)
LegalKeySizesValue
Zastaralé.

Určuje velikosti klíčů v bitech, které jsou podporovány symetrickým algoritmem.

(Zděděno od SymmetricAlgorithm)
ModeValue
Zastaralé.

Představuje režim šifrování použitý v symetrické algoritmu.

(Zděděno od SymmetricAlgorithm)
PaddingValue
Zastaralé.

Představuje režim odsazení použitý v symetrické algoritmu.

(Zděděno od SymmetricAlgorithm)

Vlastnosti

BlockSize
Zastaralé.

Získá nebo nastaví velikost bloku v bitech kryptografické operace.

(Zděděno od SymmetricAlgorithm)
FeedbackSize
Zastaralé.

Získá nebo nastaví velikost zpětné vazby v bitech kryptografické operace pro režimy šifry Šifrová zpětná vazba (CFB) a Výstupní zpětná vazba (OFB).

(Zděděno od SymmetricAlgorithm)
IV
Zastaralé.

Získá nebo nastaví inicializační vektor (IV) pro symetrický algoritmus.

(Zděděno od SymmetricAlgorithm)
Key
Zastaralé.

Získá nebo nastaví tajný klíč pro algoritmus Standard šifrování dat (DES).

(Zděděno od DES)
KeySize
Zastaralé.

Získá nebo nastaví velikost tajného klíče používaného symetrickým algoritmem v bitech.

(Zděděno od SymmetricAlgorithm)
LegalBlockSizes
Zastaralé.

Získá velikosti bloků v bitech, které jsou podporovány symetrickým algoritmem.

(Zděděno od SymmetricAlgorithm)
LegalKeySizes
Zastaralé.

Získá velikosti klíčů v bitech, které jsou podporovány symetrickým algoritmem.

(Zděděno od SymmetricAlgorithm)
Mode
Zastaralé.

Získá nebo nastaví režim pro provoz symetrického algoritmu.

(Zděděno od SymmetricAlgorithm)
Padding
Zastaralé.

Získá nebo nastaví režim odsazení použitý v symetrický algoritmus.

(Zděděno od SymmetricAlgorithm)

Metody

Clear()
Zastaralé.

Uvolní všechny prostředky používané SymmetricAlgorithm třídou .

(Zděděno od SymmetricAlgorithm)
CreateDecryptor()
Zastaralé.

Vytvoří symetrický dešifrovací objekt s aktuální Key vlastností a inicializačním vektorem (IV).

CreateDecryptor()
Zastaralé.

Vytvoří symetrický dešifrovací objekt s aktuální Key vlastností a inicializačním vektorem (IV).

(Zděděno od SymmetricAlgorithm)
CreateDecryptor(Byte[], Byte[])
Zastaralé.

Vytvoří objekt dešifrovače symetrického standardu šifrování dat (DES) se zadaným klíčem (Key) a inicializačním vektorem (IV).

CreateEncryptor()
Zastaralé.

Vytvoří objekt symetrického encryptoru s aktuální Key vlastností a inicializačním vektorem (IV).

CreateEncryptor()
Zastaralé.

Vytvoří objekt symetrického encryptoru s aktuální Key vlastností a inicializačním vektorem (IV).

(Zděděno od SymmetricAlgorithm)
CreateEncryptor(Byte[], Byte[])
Zastaralé.

Vytvoří objekt šifrování symetrického standardu šifrování dat (DES) se zadaným klíčem (Key) a inicializačním vektorem (IV).

DecryptCbc(Byte[], Byte[], PaddingMode)
Zastaralé.

Dešifruje data pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Zastaralé.

Dešifruje data pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Zastaralé.

Dešifruje data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
DecryptCfb(Byte[], Byte[], PaddingMode, Int32)
Zastaralé.

Dešifruje data pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Zastaralé.

Dešifruje data pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Dešifruje data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
DecryptEcb(Byte[], PaddingMode)
Zastaralé.

Dešifruje data pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Zastaralé.

Dešifruje data pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Zastaralé.

Dešifruje data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
Dispose()
Zastaralé.

Uvolní všechny prostředky používané aktuální instancí SymmetricAlgorithm třídy .

(Zděděno od SymmetricAlgorithm)
Dispose(Boolean)
Zastaralé.

Uvolní nespravované prostředky používané nástrojem SymmetricAlgorithm a volitelně uvolní spravované prostředky.

(Zděděno od SymmetricAlgorithm)
EncryptCbc(Byte[], Byte[], PaddingMode)
Zastaralé.

Šifruje data pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Zastaralé.

Šifruje data pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Zastaralé.

Zašifruje data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
EncryptCfb(Byte[], Byte[], PaddingMode, Int32)
Zastaralé.

Šifruje data pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Zastaralé.

Šifruje data pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Šifruje data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
EncryptEcb(Byte[], PaddingMode)
Zastaralé.

Šifruje data pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Zastaralé.

Šifruje data pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Zastaralé.

Šifruje data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
Equals(Object)
Zastaralé.

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GenerateIV()
Zastaralé.

Vygeneruje náhodný inicializační vektor (IV), který se použije pro algoritmus.

GenerateKey()
Zastaralé.

Vygeneruje náhodný klíč (Key), který se použije pro algoritmus.

GetCiphertextLengthCbc(Int32, PaddingMode)
Zastaralé.

Získá délku šifrového textu s daným režimem odsazení a délkou prostého textu v režimu CBC.

(Zděděno od SymmetricAlgorithm)
GetCiphertextLengthCfb(Int32, PaddingMode, Int32)
Zastaralé.

Získá délku šifrového textu s daným režimem odsazení a délkou prostého textu v režimu CFB.

(Zděděno od SymmetricAlgorithm)
GetCiphertextLengthEcb(Int32, PaddingMode)
Zastaralé.

Získá délku šifrového textu s daným režimem odsazení a délkou prostého textu v režimu ECB.

(Zděděno od SymmetricAlgorithm)
GetHashCode()
Zastaralé.

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()
Zastaralé.

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()
Zastaralé.

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()
Zastaralé.

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Zastaralé.

Pokusí se dešifrovat data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Při přepsání v odvozené třídě se nástroj pokusí dešifrovat data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Zastaralé.

Pokusí se dešifrovat data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Zastaralé.

Při přepsání v odvozené třídě se pokusí dešifrovat data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Pokusí se dešifrovat data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Při přepsání v odvozené třídě se nástroj pokusí dešifrovat data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Zastaralé.

Pokusí se šifrovat data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Při přepsání v odvozené třídě se nástroj pokusí šifrovat data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Zastaralé.

Pokusí se zašifrovat data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Zastaralé.

Při přepsání v odvozené třídě se nástroj pokusí šifrovat data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby.

(Zděděno od SymmetricAlgorithm)
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Pokusí se šifrovat data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Zastaralé.

Při přepsání v odvozené třídě se nástroj pokusí zašifrovat data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení.

(Zděděno od SymmetricAlgorithm)
ValidKeySize(Int32)
Zastaralé.

Určuje, zda je zadaná velikost klíče platná pro aktuální algoritmus.

(Zděděno od SymmetricAlgorithm)

Explicitní implementace rozhraní

IDisposable.Dispose()

Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu.

Zastaralé.

Uvolní nespravované prostředky používané nástrojem SymmetricAlgorithm a volitelně uvolní spravované prostředky.

(Zděděno od SymmetricAlgorithm)

Platí pro

Viz také