共用方式為


DESCryptoServiceProvider 類別

定義

警告

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

定義包裝函式物件,以存取資料加密標準 (DES) 演算法的密碼編譯服務供應者 (CSP) 版本。 此類別無法獲得繼承。

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
繼承
DESCryptoServiceProvider
屬性

範例

下列程式代碼範例會使用 DESCryptoServiceProvider () 實作 DES 搭配指定的密鑰 () Key 和初始化向量, IV () 來加密 指定的 inName檔案。 然後,它會將加密的結果輸出至 所 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

解密可以用相同方式處理;使用 CreateDecryptorCreateEncryptor而不是 。 用來加密檔案的 Key 相同金鑰 () 和初始化向量 (IV) 必須用來解密檔案。

備註

此演演算法支援64位的金鑰長度。

重要

有先進加密標準 (Advanced Encryption Standard,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[])
已淘汰.

使用指定的金鑰 (DES) 和初始化向量 (Key),建立對稱資料加密標準 (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 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

(繼承來源 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)
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 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

(繼承來源 SymmetricAlgorithm)

適用於

另請參閱