TripleDES 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
모든 TripleDES 구현이 파생되어야 하는 Triple Data Encryption Standard 알고리즘에 대한 기본 클래스를 나타냅니다.
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
- 상속
- 파생
- 특성
예제
다음 코드 예제 메서드는 지정된 키() 및 초기화 벡터(KeyIV)와 함께 를 사용하여 TripleDESCryptoServiceProvider 로 inName
지정된 파일을 암호화합니다. 그런 다음, 에서 지정 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. 파일을 암호화하는 데 사용되는 동일한 키(Key) 및 초기화 벡터(IV)를 사용하여 암호를 해독해야 합니다.
설명
TripleDES 는 알고리즘의 세 번의 연속 반복을 DES 사용합니다. 두 개 또는 세 개의 56비트 키를 사용할 수 있습니다.
참고
최신 대칭 암호화 알고리즘인 AES(Advanced Encryption Standard)를 사용할 수 있습니다. 클래스 대신 TripleDES 클래스 및 파생 클래스를 사용하는 Aes 것이 좋습니다. 사용 하 여 TripleDES 레거시 애플리케이션 및 데이터를 사용 하 여 호환성을 위해서만 합니다.
이 알고리즘은 64비트 단위로 128비트에서 192비트까지의 키 길이를 지원합니다.
생성자
TripleDES() |
TripleDES 클래스의 새 인스턴스를 초기화합니다. |
필드
BlockSizeValue |
암호화 작업의 블록 크기(비트)를 나타냅니다. (다음에서 상속됨 SymmetricAlgorithm) |
FeedbackSizeValue |
암호화 작업의 피드백 크기(비트 단위)를 나타냅니다. (다음에서 상속됨 SymmetricAlgorithm) |
IVValue |
대칭 알고리즘에 대한 초기화 벡터(IV)를 나타냅니다. (다음에서 상속됨 SymmetricAlgorithm) |
KeySizeValue |
대칭 알고리즘에서 사용하는 비밀 키의 크기(비트 단위)를 나타냅니다. (다음에서 상속됨 SymmetricAlgorithm) |
KeyValue |
대칭 알고리즘에 대한 비밀 키를 나타냅니다. (다음에서 상속됨 SymmetricAlgorithm) |
LegalBlockSizesValue |
대칭 알고리즘에서 지원하는 블록 크기(비트 단위)를 지정합니다. (다음에서 상속됨 SymmetricAlgorithm) |
LegalKeySizesValue |
대칭 알고리즘에서 지원하는 키 크기(비트 단위)를 지정합니다. (다음에서 상속됨 SymmetricAlgorithm) |
ModeValue |
대칭 알고리즘에 사용된 암호화 모드를 나타냅니다. (다음에서 상속됨 SymmetricAlgorithm) |
PaddingValue |
대칭 알고리즘에 사용된 패딩 모드를 나타냅니다. (다음에서 상속됨 SymmetricAlgorithm) |
속성
BlockSize |
암호화 작업의 블록 크기(비트 단위)를 가져오거나 설정합니다. (다음에서 상속됨 SymmetricAlgorithm) |
FeedbackSize |
CFB(Cipher Feedback) 및 OFB(Output Feedback) 암호화 모드에 대한 암호화 작업의 피드백 크기(비트 단위)를 가져오거나 설정합니다. (다음에서 상속됨 SymmetricAlgorithm) |
IV |
대칭 알고리즘에 대한 초기화 벡터(IV)를 가져오거나 설정합니다. (다음에서 상속됨 SymmetricAlgorithm) |
Key |
TripleDES 알고리즘에 대한 비밀 키를 가져오거나 설정합니다. |
KeySize |
대칭 알고리즘에서 사용하는 비밀 키의 크기(비트 단위)를 가져오거나 설정합니다. (다음에서 상속됨 SymmetricAlgorithm) |
LegalBlockSizes |
대칭 알고리즘에서 지원하는 블록 크기(비트 단위)를 가져옵니다. |
LegalBlockSizes |
대칭 알고리즘에서 지원하는 블록 크기(비트 단위)를 가져옵니다. (다음에서 상속됨 SymmetricAlgorithm) |
LegalKeySizes |
대칭 알고리즘에서 지원하는 키 크기(비트 단위)를 가져옵니다. |
LegalKeySizes |
대칭 알고리즘에서 지원하는 키 크기(비트 단위)를 가져옵니다. (다음에서 상속됨 SymmetricAlgorithm) |
Mode |
대칭 알고리즘의 작업 모드를 가져오거나 설정합니다. (다음에서 상속됨 SymmetricAlgorithm) |
Padding |
대칭 알고리즘에 사용된 패딩 모드를 가져오거나 설정합니다. (다음에서 상속됨 SymmetricAlgorithm) |
메서드
명시적 인터페이스 구현
IDisposable.Dispose() |
이 API는 제품 인프라를 지원하며 코드에서 직접 사용되지 않습니다. SymmetricAlgorithm에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다. (다음에서 상속됨 SymmetricAlgorithm) |
적용 대상
추가 정보
.NET