DESCryptoServiceProvider 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
警告
Derived cryptographic types are obsolete. Use the Create method on the base type instead.
定義一個包裝物件,用於存取資料加密標準(Data Encryption Standard)DES演算法的密碼服務提供者(CSP)版本。 此類別無法獲得繼承。
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)並指定金鑰 (Key) 與初始化向量 (IV) 來加密由 所 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。 解密時必須使用用於加密檔案的相同金鑰(Key)和初始化向量(IV)。
備註
此演算法支援 64 位元的金鑰長度。
建構函式
| 名稱 | Description |
|---|---|
| DESCryptoServiceProvider() |
已淘汰.
初始化 DESCryptoServiceProvider 類別的新執行個體。 |
欄位
| 名稱 | Description |
|---|---|
| BlockSizeValue |
已淘汰.
代表密碼運算的區塊大小(位元)。 (繼承來源 SymmetricAlgorithm) |
| FeedbackSizeValue |
已淘汰.
代表密碼運算的反饋大小(位元)。 (繼承來源 SymmetricAlgorithm) |
| IVValue |
已淘汰.
代表對稱演算法的初始化向量(IV)。 (繼承來源 SymmetricAlgorithm) |
| KeySizeValue |
已淘汰.
代表對稱演算法所使用的秘密金鑰的大小(以位元為單位)。 (繼承來源 SymmetricAlgorithm) |
| KeyValue |
已淘汰.
代表對稱演算法的祕密金鑰。 (繼承來源 SymmetricAlgorithm) |
| LegalBlockSizesValue |
已淘汰.
指定對稱演算法所支援的區塊大小(位元)。 (繼承來源 SymmetricAlgorithm) |
| LegalKeySizesValue |
已淘汰.
指定對稱演算法所支援的金鑰大小(位元)。 (繼承來源 SymmetricAlgorithm) |
| ModeValue |
已淘汰.
代表對稱演算法中使用的密碼模式。 (繼承來源 SymmetricAlgorithm) |
| PaddingValue |
已淘汰.
代表對稱演算法中使用的填充模式。 (繼承來源 SymmetricAlgorithm) |
屬性
| 名稱 | Description |
|---|---|
| BlockSize |
已淘汰.
取得或設定密碼運算的區塊大小(位元)。 (繼承來源 SymmetricAlgorithm) |
| FeedbackSize |
已淘汰.
取得或設定密碼反饋(CFB)與輸出反饋(OFB)密碼模式的反饋大小(位元)。 (繼承來源 SymmetricAlgorithm) |
| IV |
已淘汰.
取得或設定對稱演算法的初始化向量(IV)。 (繼承來源 SymmetricAlgorithm) |
| Key |
已淘汰.
取得或設定資料加密標準(Data Encryption Standard)DES演算法的秘密金鑰。 (繼承來源 DES) |
| KeySize |
已淘汰.
取得或設定對稱演算法所使用的秘密金鑰的大小(以位元為單位)。 (繼承來源 SymmetricAlgorithm) |
| LegalBlockSizes |
已淘汰.
取得對稱演算法所支援的區塊大小(位元)。 (繼承來源 SymmetricAlgorithm) |
| LegalKeySizes |
已淘汰.
取得對稱演算法所支援的金鑰大小(位元)。 (繼承來源 SymmetricAlgorithm) |
| Mode |
已淘汰.
取得或設定對稱演算法的運作模式。 (繼承來源 SymmetricAlgorithm) |
| Padding |
已淘汰.
取得或設定對稱演算法中使用的填充模式。 (繼承來源 SymmetricAlgorithm) |
方法
明確介面實作
| 名稱 | Description |
|---|---|
| IDisposable.Dispose() |
此 API 支援此產品基礎結構,但無法直接用於程式碼之中。
已淘汰.
釋放 未管理的資源, SymmetricAlgorithm 並可選擇性地釋放受管理資源。 (繼承來源 SymmetricAlgorithm) |