다음을 통해 공유


대칭 알고리즘 샘플

업데이트: 2007년 11월

이 샘플에서는 RijndaelTripleDESCryptoServiceProvider 클래스를 사용하여 암호화 개요에 설명된 대칭(비밀 키) 암호화를 구현합니다.

설치 샘플 및 지침을 얻으려면

  • 다음 중 하나 이상을 수행합니다.

    • 도움말 메뉴에서 샘플을 클릭합니다.

      추가 정보 파일에서 샘플에 대한 정보를 확인합니다.

    • Visual Studio 2008 Samples 웹 사이트를 방문합니다. 이 웹 사이트에서 최신 버전의 샘플을 얻을 수 있습니다.

    • Visual Studio가 설치되어 있는 컴퓨터에서 샘플을 찾습니다. 기본적으로 샘플과 추가 정보 파일은 drive:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid에 설치되어 있습니다. Visual Studio Express Editions의 경우에는 모든 샘플이 온라인에 있습니다.

자세한 내용은 샘플 파일 찾기를 참조하십시오.

보안 정보:

이 샘플 코드는 개념을 설명하기 위한 것으로 개념과 관련된 코드만을 보여 줍니다. 특정 환경에 대한 보안 요구 사항을 충족하지 못 할 수 있고 표시된 그대로 사용하면 안됩니다. 안전하고 강력한 프로젝트를 만들려면 보안 및 오류 처리 코드를 추가하는 것이 좋습니다. Microsoft에서는 어떠한 보증도 없이 “있는 그대로” 이 샘플 코드를 제공합니다.

이 샘플을 실행하려면

  • F5 키를 누릅니다.

세부 항목

SampleCrypto 클래스는 암호화 알고리즘, 솔트 및 IV(Initialization Vector), 하나의 암호화된 파일을 정의하는 암호화 및 암호 해독 루틴을 캡슐화합니다. 생성자는 암호화 형식으로 Rijndael을 사용할 것인지 TripleDES를 사용할 것인지를 결정하는 매개 변수 하나를 사용합니다. 클래스의 해당 필드인 crpSym은 추상 형식인 SymmetricAlgorithm이며, Rijndael 클래스 또는 TripleDESCryptoServiceProvider 클래스의 인스턴스로 설정됩니다. CreateSaltIVFile 메서드는 솔트 및 IV 값을 .dat 파일에 저장합니다. Decrypt 및 Encrypt 메서드는 SourceFileName 속성에 지정된 소스 파일을 처리합니다.

폼이 로드되면 SampleCrypto 클래스의 인스턴스 하나가 만들어집니다. 폼의 컨트롤은 SampleCrypto 클래스의 메서드와 속성을 보여 줍니다. Encrypt with Password 컨트롤을 선택하면 키가 자동으로 생성 및 설정되지 않고 "솔트된" 암호에서 파생됩니다. 또한 솔트 및 IV(Initialization Vector)는 .dat 파일에 암호화되지 않은 상태로 유지됩니다. 이런 방식으로 문서를 다른 사람에게 안전하게 보내는 방법을 볼 수 있습니다. 암호화된 문서는 보안이 되지 않는 회선을 통해 전송할 수 있지만 .dat 파일과 암호는 비동기(또는 공개 키) 암호화를 사용하여 안전하게 전송할 수 있습니다. 이러한 유형의 암호화는 가장 안전한 형태의 암호화이지만 처리 시간이 오래 걸립니다. 이런 이유 때문에 이 암호화는 비밀 키, 솔트/IV 파일 또는 암호 등과 같은 간단한 작업 항목에 주로 사용됩니다.

참고 항목

개념

.NET Framework 암호화 모델

참조

TripleDESCryptoServiceProvider

Rijndael

SymmetricAlgorithm

Salt

IV