Share via


TripleDES Kelas

Definisi

Mewakili kelas dasar untuk algoritma Triple Data Encryption Standard tempat semua TripleDES implementasi harus berasal.

public ref class TripleDES abstract : System::Security::Cryptography::SymmetricAlgorithm
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public abstract class TripleDES : System.Security.Cryptography.SymmetricAlgorithm
public abstract class TripleDES : System.Security.Cryptography.SymmetricAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class TripleDES : System.Security.Cryptography.SymmetricAlgorithm
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type TripleDES = class
    inherit SymmetricAlgorithm
type TripleDES = class
    inherit SymmetricAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type TripleDES = class
    inherit SymmetricAlgorithm
Public MustInherit Class TripleDES
Inherits SymmetricAlgorithm
Warisan
Turunan
Atribut

Contoh

Metode contoh kode berikut menggunakan dengan kunci yang ditentukan (Key) dan vektor inisialisasi TripleDESCryptoServiceProvider (IV) untuk mengenkripsi file yang ditentukan oleh inName. Kemudian menghasilkan hasil terenkripsi ke file yang ditentukan oleh outName.

void EncryptData( String^ inName, String^ outName, array<Byte>^tdesKey, array<Byte>^tdesIV )
{
   
   //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.

   TripleDESCryptoServiceProvider^ tdes = gcnew TripleDESCryptoServiceProvider;
   CryptoStream^ encStream = gcnew CryptoStream( fout,tdes->CreateEncryptor( tdesKey, tdesIV ),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();
}
private static void EncryptData(string inName, string outName, byte[] tdesKey, byte[] tdesIV)
{
    //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.

    TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
    CryptoStream encStream = new CryptoStream(fout, tdes.CreateEncryptor(tdesKey, tdesIV), 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();
}
Private Shared Sub EncryptData(inName As String, outName As String, _
   tdesKey() As Byte, tdesIV() 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(100) 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 'This is the total length of the input file.
    Dim len As Integer 'This is the number of bytes to be written at a time.
    Dim tdes As New TripleDESCryptoServiceProvider()
    Dim encStream As New CryptoStream(fout, _
       tdes.CreateEncryptor(tdesKey, tdesIV), 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)
    End While
        
    encStream.Close()
End Sub

Dekripsi dapat ditangani dengan cara yang sama; gunakan CreateDecryptor alih-alih CreateEncryptor. Kunci yang sama (Key) dan vektor inisialisasi (IV) yang digunakan untuk mengenkripsi file harus digunakan untuk mendekripsinya.

Keterangan

TripleDES menggunakan tiga iterasi algoritma berturut-turut DES . Ini dapat menggunakan dua atau tiga kunci 56-bit.

Catatan

Algoritma enkripsi simetris yang lebih baru, Standar Enkripsi Lanjutan (AES), tersedia. Pertimbangkan untuk Aes menggunakan kelas dan kelas turunannya alih-alih TripleDES kelas . Gunakan TripleDES hanya untuk kompatibilitas dengan aplikasi dan data warisan.

Algoritma ini mendukung panjang kunci dari 128 bit hingga 192 bit dengan kenaikan 64 bit.

Konstruktor

TripleDES()

Menginisialisasi instans baru kelas TripleDES.

Bidang

BlockSizeValue

Mewakili ukuran blok, dalam bit, dari operasi kriptografi.

(Diperoleh dari SymmetricAlgorithm)
FeedbackSizeValue

Mewakili ukuran umpan balik, dalam bit, dari operasi kriptografi.

(Diperoleh dari SymmetricAlgorithm)
IVValue

Mewakili vektor inisialisasi (IV) untuk algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
KeySizeValue

Mewakili ukuran, dalam bit, dari kunci rahasia yang digunakan oleh algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
KeyValue

Mewakili kunci rahasia untuk algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
LegalBlockSizesValue

Menentukan ukuran blok, dalam bit, yang didukung oleh algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
LegalKeySizesValue

Menentukan ukuran kunci, dalam bit, yang didukung oleh algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
ModeValue

Mewakili mode sandi yang digunakan dalam algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
PaddingValue

Mewakili mode padding yang digunakan dalam algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)

Properti

BlockSize

Mendapatkan atau mengatur ukuran blok, dalam bit, dari operasi kriptografi.

(Diperoleh dari SymmetricAlgorithm)
FeedbackSize

Mendapatkan atau mengatur ukuran umpan balik, dalam bit, dari operasi kriptografi untuk mode cipher Feedback (CFB) dan Output Feedback (OFB).

(Diperoleh dari SymmetricAlgorithm)
IV

Mendapatkan atau mengatur vektor inisialisasi (IV) untuk algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
Key

Mendapatkan atau mengatur kunci rahasia untuk TripleDES algoritma.

KeySize

Mendapatkan atau mengatur ukuran, dalam bit, dari kunci rahasia yang digunakan oleh algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
LegalBlockSizes

Mendapatkan ukuran blok, dalam bit, yang didukung oleh algoritma simetris.

LegalBlockSizes

Mendapatkan ukuran blok, dalam bit, yang didukung oleh algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
LegalKeySizes

Mendapatkan ukuran kunci, dalam bit, yang didukung oleh algoritma simetris.

LegalKeySizes

Mendapatkan ukuran kunci, dalam bit, yang didukung oleh algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
Mode

Mendapatkan atau mengatur mode untuk pengoperasian algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)
Padding

Mendapatkan atau mengatur mode padding yang digunakan dalam algoritma simetris.

(Diperoleh dari SymmetricAlgorithm)

Metode

Clear()

Merilis semua sumber daya yang SymmetricAlgorithm digunakan oleh kelas .

(Diperoleh dari SymmetricAlgorithm)
Create()

Membuat instans objek kriptografi untuk melakukan TripleDES algoritma.

Create(String)
Kedaluwarsa.

Membuat instans objek kriptografi untuk melakukan implementasi TripleDES algoritma yang ditentukan.

CreateDecryptor()

Membuat objek dekripsi simetris dengan properti saat ini Key dan vektor inisialisasi (IV).

(Diperoleh dari SymmetricAlgorithm)
CreateDecryptor(Byte[], Byte[])

Ketika ditimpa di kelas turunan, membuat objek dekripsi simetris dengan properti dan vektor inisialisasi yang ditentukan Key (IV).

(Diperoleh dari SymmetricAlgorithm)
CreateEncryptor()

Membuat objek enkripsi simetris dengan properti saat ini Key dan vektor inisialisasi (IV).

(Diperoleh dari SymmetricAlgorithm)
CreateEncryptor(Byte[], Byte[])

Ketika ditimpa di kelas turunan, membuat objek enkripsi simetris dengan properti dan vektor inisialisasi yang ditentukan Key (IV).

(Diperoleh dari SymmetricAlgorithm)
DecryptCbc(Byte[], Byte[], PaddingMode)

Mendekripsi data menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)

Mendekripsi data menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

Mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptCfb(Byte[], Byte[], PaddingMode, Int32)

Mendekripsi data menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)

Mendekripsi data menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptEcb(Byte[], PaddingMode)

Mendekripsi data menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode)

Mendekripsi data menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

Mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
Dispose()

Merilis semua sumber daya yang digunakan oleh instans SymmetricAlgorithm kelas saat ini.

(Diperoleh dari SymmetricAlgorithm)
Dispose(Boolean)

Merilis sumber daya tidak terkelola yang SymmetricAlgorithm digunakan oleh dan secara opsional merilis sumber daya terkelola.

(Diperoleh dari SymmetricAlgorithm)
EncryptCbc(Byte[], Byte[], PaddingMode)

Mengenkripsi data menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)

Mengenkripsi data menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

Mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptCfb(Byte[], Byte[], PaddingMode, Int32)

Mengenkripsi data menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)

Mengenkripsi data menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptEcb(Byte[], PaddingMode)

Mengenkripsi data menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode)

Mengenkripsi data menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

Mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GenerateIV()

Ketika ditimpa di kelas turunan, menghasilkan vektor inisialisasi acak (IV) untuk digunakan untuk algoritma.

(Diperoleh dari SymmetricAlgorithm)
GenerateKey()

Ketika ditimpa di kelas turunan, menghasilkan kunci acak (Key) untuk digunakan untuk algoritma.

(Diperoleh dari SymmetricAlgorithm)
GetCiphertextLengthCbc(Int32, PaddingMode)

Mendapatkan panjang ciphertext dengan mode padding dan panjang teks biasa tertentu dalam mode CBC.

(Diperoleh dari SymmetricAlgorithm)
GetCiphertextLengthCfb(Int32, PaddingMode, Int32)

Mendapatkan panjang ciphertext dengan mode padding dan panjang teks biasa tertentu dalam mode CFB.

(Diperoleh dari SymmetricAlgorithm)
GetCiphertextLengthEcb(Int32, PaddingMode)

Mendapatkan panjang ciphertext dengan mode padding dan panjang teks biasa tertentu dalam mode ECB.

(Diperoleh dari SymmetricAlgorithm)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
IsWeakKey(Byte[])

Menentukan apakah kunci yang ditentukan lemah.

MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)

Mencoba mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Ketika ditimpa dalam kelas turunan, mencoba mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)

Mencoba mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)

Ketika ditimpa di kelas turunan, mencoba mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Mencoba mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Ketika ditimpa di kelas turunan, mencoba mendekripsi data ke dalam buffer yang ditentukan, menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)

Mencoba mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Saat ditimpa di kelas turunan, mencoba mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode CBC dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)

Mencoba mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)

Saat ditimpa di kelas turunan, mencoba mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode CFB dengan mode padding dan ukuran umpan balik yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Mencoba mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Saat ditimpa di kelas turunan, mencoba mengenkripsi data ke dalam buffer yang ditentukan, menggunakan mode ECB dengan mode padding yang ditentukan.

(Diperoleh dari SymmetricAlgorithm)
ValidKeySize(Int32)

Menentukan apakah ukuran kunci yang ditentukan valid untuk algoritma saat ini.

(Diperoleh dari SymmetricAlgorithm)

Implementasi Antarmuka Eksplisit

IDisposable.Dispose()

API ini mendukung infrastruktur produk dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Merilis sumber daya tidak terkelola yang SymmetricAlgorithm digunakan oleh dan secara opsional merilis sumber daya terkelola.

(Diperoleh dari SymmetricAlgorithm)

Berlaku untuk

Lihat juga