TripleDES 클래스

정의

모든 TripleDES 구현이 파생되어야 하는 3중 데이터 암호화 표준 알고리즘에 대한 기본 클래스를 나타냅니다.Represents the base class for Triple Data Encryption Standard algorithms from which all TripleDES implementations must derive.

public ref class TripleDES abstract : System::Security::Cryptography::SymmetricAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class TripleDES : System.Security.Cryptography.SymmetricAlgorithm
type TripleDES = class
    inherit SymmetricAlgorithm
Public MustInherit Class TripleDES
Inherits SymmetricAlgorithm
상속
파생
특성

예제

다음 코드 예제 메서드는 지정 된 키 (Key) 및 초기화 벡터 (IV)와 함께 TripleDESCryptoServiceProvider를 사용 하 여 inName에 지정 된 파일을 암호화 합니다.The following code example method uses TripleDESCryptoServiceProvider with the specified key (Key) and initialization vector (IV) to encrypt a file specified by inName. 그런 다음 outName에 지정 된 파일에 암호화 된 결과를 출력 합니다.It then outputs the encrypted result to the file specified by 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

암호 해독은 동일한 방식으로 처리할 수 있습니다. CreateEncryptor대신 CreateDecryptor를 사용 합니다.Decryption can be handled in the same way; use CreateDecryptor instead of CreateEncryptor. 파일을 암호화 하는 데 사용 되는 것과 동일한 키 (Key)와 초기화 벡터 (IV)를 사용 하 여 암호를 해독 해야 합니다.The same key (Key) and initialization vector (IV) used to encrypt the file must be used to decrypt it.

설명

TripleDESDES 알고리즘의 연속 된 세 가지 반복을 사용 합니다.TripleDES uses three successive iterations of the DES algorithm. 56 비트 키 2 또는 3 개의 사용할 수 있습니다.It can use either two or three 56-bit keys.

참고

고급 암호화 표준 (AES)을 최신 대칭 암호화 알고리즘을 사용할 수 있는 경우A newer symmetric encryption algorithm, Advanced Encryption Standard (AES), is available. TripleDES 클래스 대신 Aes 클래스 및 파생 클래스를 사용 하는 것이 좋습니다.Consider using the Aes class and its derived classes instead of the TripleDES class. 사용 하 여 TripleDES 레거시 애플리케이션 및 데이터를 사용 하 여 호환성을 위해서만 합니다.Use TripleDES only for compatibility with legacy applications and data.

이 알고리즘은 64 비트 단위로 증가 192 비트에서 128 비트 키 길이 지원 합니다.This algorithm supports key lengths from 128 bits to 192 bits in increments of 64 bits.

생성자

TripleDES()

TripleDES 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the TripleDES class.

필드

BlockSizeValue

암호화 작업의 블록 크기(비트)를 나타냅니다.Represents the block size, in bits, of the cryptographic operation.

(다음에서 상속됨 SymmetricAlgorithm)
FeedbackSizeValue

암호화 작업의 피드백 크기(비트 단위)를 나타냅니다.Represents the feedback size, in bits, of the cryptographic operation.

(다음에서 상속됨 SymmetricAlgorithm)
IVValue

대칭 알고리즘에 대한 초기화 벡터(IV)를 나타냅니다.Represents the initialization vector (IV) for the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
KeySizeValue

대칭 알고리즘에서 사용하는 비밀 키의 크기(비트 단위)를 나타냅니다.Represents the size, in bits, of the secret key used by the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
KeyValue

대칭 알고리즘에 대한 비밀 키를 나타냅니다.Represents the secret key for the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
LegalBlockSizesValue

대칭 알고리즘에서 지원하는 블록 크기(비트 단위)를 지정합니다.Specifies the block sizes, in bits, that are supported by the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
LegalKeySizesValue

대칭 알고리즘에서 지원하는 키 크기(비트 단위)를 지정합니다.Specifies the key sizes, in bits, that are supported by the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
ModeValue

대칭 알고리즘에 사용된 암호화 모드를 나타냅니다.Represents the cipher mode used in the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
PaddingValue

대칭 알고리즘에 사용된 패딩 모드를 나타냅니다.Represents the padding mode used in the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)

속성

BlockSize

암호화 작업의 블록 크기(비트 단위)를 가져오거나 설정합니다.Gets or sets the block size, in bits, of the cryptographic operation.

(다음에서 상속됨 SymmetricAlgorithm)
FeedbackSize

CFB(Cipher Feedback) 및 OFB(Output Feedback) 암호화 모드에 대한 암호화 작업의 피드백 크기(비트 단위)를 가져오거나 설정합니다.Gets or sets the feedback size, in bits, of the cryptographic operation for the Cipher Feedback (CFB) and Output Feedback (OFB) cipher modes.

(다음에서 상속됨 SymmetricAlgorithm)
IV

대칭 알고리즘에 대한 초기화 벡터(IV)를 가져오거나 설정합니다.Gets or sets the initialization vector (IV) for the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
Key

TripleDES 알고리즘에 대한 비밀 키를 가져오거나 설정합니다.Gets or sets the secret key for the TripleDES algorithm.

KeySize

대칭 알고리즘에서 사용하는 비밀 키의 크기(비트 단위)를 가져오거나 설정합니다.Gets or sets the size, in bits, of the secret key used by the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
LegalBlockSizes

대칭 알고리즘에서 지원하는 블록 크기(비트 단위)를 가져옵니다.Gets the block sizes, in bits, that are supported by the symmetric algorithm.

LegalKeySizes

대칭 알고리즘에서 지원하는 키 크기(비트 단위)를 가져옵니다.Gets the key sizes, in bits, that are supported by the symmetric algorithm.

Mode

대칭 알고리즘의 작업 모드를 가져오거나 설정합니다.Gets or sets the mode for operation of the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
Padding

대칭 알고리즘에 사용된 패딩 모드를 가져오거나 설정합니다.Gets or sets the padding mode used in the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)

메서드

Clear()

SymmetricAlgorithm 클래스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the SymmetricAlgorithm class.

(다음에서 상속됨 SymmetricAlgorithm)
Create()

TripleDES 알고리즘을 수행할 암호화 개체의 인스턴스를 만듭니다.Creates an instance of a cryptographic object to perform the TripleDES algorithm.

Create(String)

암호화 개체의 인스턴스를 만들어 지정된 방식으로 TripleDES 알고리즘을 구현합니다.Creates an instance of a cryptographic object to perform the specified implementation of the TripleDES algorithm.

CreateDecryptor()

현재 Key 속성 및 초기화 벡터(IV)를 사용하여 대칭 decryptor 개체를 만듭니다.Creates a symmetric decryptor object with the current Key property and initialization vector (IV).

(다음에서 상속됨 SymmetricAlgorithm)
CreateDecryptor(Byte[], Byte[])

파생 클래스에서 재정의된 경우 지정된 Key 속성 및 초기화 벡터(IV)를 사용하여 대칭 decryptor 개체를 만듭니다.When overridden in a derived class, creates a symmetric decryptor object with the specified Key property and initialization vector (IV).

(다음에서 상속됨 SymmetricAlgorithm)
CreateEncryptor()

현재 Key 속성 및 초기화 벡터(IV)를 사용하여 대칭 encryptor 개체를 만듭니다.Creates a symmetric encryptor object with the current Key property and initialization vector (IV).

(다음에서 상속됨 SymmetricAlgorithm)
CreateEncryptor(Byte[], Byte[])

파생 클래스에서 재정의된 경우 지정된 Key 속성 및 초기화 벡터(IV)를 사용하여 대칭 encryptor 개체를 만듭니다.When overridden in a derived class, creates a symmetric encryptor object with the specified Key property and initialization vector (IV).

(다음에서 상속됨 SymmetricAlgorithm)
Dispose()

SymmetricAlgorithm 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the current instance of the SymmetricAlgorithm class.

(다음에서 상속됨 SymmetricAlgorithm)
Dispose(Boolean)

SymmetricAlgorithm에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.

(다음에서 상속됨 SymmetricAlgorithm)
Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GenerateIV()

파생 클래스에서 재정의된 경우 알고리즘에 사용할 임의의 초기화 벡터(IV)를 생성합니다.When overridden in a derived class, generates a random initialization vector (IV) to use for the algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
GenerateKey()

파생 클래스에서 재정의된 경우 알고리즘에 사용할 난수 키(Key)를 생성합니다.When overridden in a derived class, generates a random key (Key) to use for the algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
IsWeakKey(Byte[])

지정한 키가 weak인지 여부를 확인합니다.Determines whether the specified key is weak.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)
ValidKeySize(Int32)

지정된 키 크기를 현재 알고리즘에 사용할 수 있는지 여부를 결정합니다.Determines whether the specified key size is valid for the current algorithm.

(다음에서 상속됨 SymmetricAlgorithm)

명시적 인터페이스 구현

IDisposable.Dispose()

SymmetricAlgorithm에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.

(다음에서 상속됨 SymmetricAlgorithm)

적용 대상

추가 정보