2012-05-22 2 views
0

C# 응용 프로그램에서 일반 텍스트 파일의 일부를 프로그래밍 방식으로 암호화하고 암호화되지 않은 데이터를 메모리에서 쉽게 가로 채지 못하게해야한다는 요구 사항이 있습니다. 원시 데이터가 해독 된 형식으로 처리되는 지점이 항상 있습니다)..NET에서 텍스트 파일 암호화

파일에서 암호화 된 암호를 사용하거나 이상적으로 개인 키를 통해 데이터의 암호화를 해제 할 수 있어야합니다. 한 가지 요구 사항은 개인 키가 암호화 된 전체의 서브 세트를 암호 해독하도록 고유 한 키 쌍으로 각 암호화 된 블록을 보호하도록 허용하는 것입니다.

RSACryptoServiceProvider 또는 .Net 4.0에서 사용할 수있는 다른 비대칭 암호화 스키마를 사용할 생각입니다. 나는이 계획이 견고해야하고주의해야 할 이유가있는 경우 외부 도서관을 사용하는 것을 싫어하지 않을 것이므로주의를 기울이고있다.

또한 암호화되지 않은 데이터를 가로 채기위한 수단으로 런타임 힙 워킹 (heap-walking)을 방지하기 위해 암호화 된 메모리를 유지 관리하는 기술에 관심이 있습니다.

미리 감사드립니다.

+0

['SecureString'] (http://msdn.microsoft.com/en-us/library/system.security.securestring.aspx) 클래스를 확인하십시오.) –

답변

2

RSACryptoServiceProvider의 예를 보려면 MSDN page that has a very complete usage example으로 연결하면됩니다.

메모리에 string의 안전한 저장을 위해

, 당신은 System.Security.SecureString를 사용할 수 있습니다

SecureString 클래스 : 는 기밀로 유지해야합니다 텍스트를 나타냅니다. 텍스트는 사용될 때 개인 정보 보호를 위해 암호화되고 더 이상 필요하지 않을 때 컴퓨터 메모리에서 삭제됩니다.

그러나 명심하시기 바랍니다 어떤 사람이 충분히 숙련 및/또는 동기를 부여 것이다 항상 결국 사용자가 설정 한 보호를 깰 관리 할 수 ​​있습니다.

+0

감사합니다. SecureString이 우리의 목적으로는 충분할 수 있습니다. – pdm2011