DESCryptoServiceProvider 클래스

정의

래퍼 개체를 정의하여 데이터 암호화 표준(DES) 알고리즘의 CSP(암호화 서비스 공급자) 버전에 액세스합니다.Defines a wrapper object to access the cryptographic service provider (CSP) version of the Data Encryption Standard (DES) algorithm. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

public ref class DESCryptoServiceProvider sealed : System::Security::Cryptography::DES
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DESCryptoServiceProvider : System.Security.Cryptography.DES
type DESCryptoServiceProvider = class
    inherit DES
Public NotInheritable Class DESCryptoServiceProvider
Inherits DES
상속
DESCryptoServiceProvider
특성

예제

다음 코드 예제에서는 지정 된 키 (Key)와 초기화 벡터 (IV)를 사용 하 여 DESCryptoServiceProvider (DES의 구현)를 사용 하 여 inName에서 지정 된 파일을 암호화 합니다.The following code example uses DESCryptoServiceProvider (an implementation of DES) 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>^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

암호 해독은 동일한 방식으로 처리할 수 있습니다. 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.

설명

이 알고리즘은 64 비트의 키 길이 지원 합니다.This algorithm supports a key length of 64 bits.

생성자

DESCryptoServiceProvider()

DESCryptoServiceProvider 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the DESCryptoServiceProvider 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

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

(다음에서 상속됨 SymmetricAlgorithm)
IV

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

(다음에서 상속됨 SymmetricAlgorithm)
Key

데이터 암호화 표준(DES) 알고리즘에 대한 비밀 키를 가져오거나 설정합니다.Gets or sets the secret key for the Data Encryption Standard (DES) algorithm.

(다음에서 상속됨 DES)
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.

(다음에서 상속됨 SymmetricAlgorithm)
LegalKeySizes

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

(다음에서 상속됨 SymmetricAlgorithm)
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)
CreateDecryptor()

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

CreateDecryptor(Byte[], Byte[])

지정된 키(DES)와 초기화 벡터(Key)를 사용하여 대칭 데이터 암호화 표준(IV) decryptor 개체를 만듭니다.Creates a symmetric Data Encryption Standard (DES) decryptor object with the specified key (Key) and initialization vector (IV).

CreateEncryptor()

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

CreateEncryptor(Byte[], Byte[])

지정된 키(DES)와 초기화 벡터(Key)를 사용하여 대칭 데이터 암호화 표준(IV) encryptor 개체를 만듭니다.Creates a symmetric Data Encryption Standard (DES) encryptor object with the specified key (Key) and initialization vector (IV).

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)를 생성합니다.Generates a random initialization vector (IV) to use for the algorithm.

GenerateKey()

알고리즘에 사용할 임의의 키(Key)를 생성합니다.Generates a random key (Key) to be used for the algorithm.

GetHashCode()

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

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

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

(다음에서 상속됨 Object)
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)

적용 대상

추가 정보