.Net 문자열은 변경 불가능하며 수용 할 수 없습니다. 불변성은 문자열을 만든 후에 변경할 수 없습니다. Interning은 CLR이 동일한 내용의 문자열 인스턴스 하나를 사용하도록합니다. 문자열을 없애는 것도 어렵게 만듭니다. 공용 언어 런타임 (CLR)이 종료 될 때까지
.. 인턴 String 객체에 할당 된 메모리 MSDN에서 가능성이 는 공개되지 않습니다. 이유는 응용 프로그램 또는 심지어 응용 프로그램 도메인 인 이 종료 된 후에도 내부 String 객체에 대한 CLR의 참조가 지속될 수 있기 때문입니다.
SecureString을 사용할 수 있지만 많은 WPF 컨트롤이 PasswordBox와 별도로 지원하지 않으므로 그리 편리하지 않습니다.
예를 들어 사용자에게 암호를 보여줘야하지만 SecureString을 일반 문자열로 다시 변환하지 않아도되는 경우가 있습니다. 이로 인해 우리가 완화하기 위해 설정 한 문제가 다시 발생합니다.
제 의견으로는 WPF/C#은 민감한 데이터가있는 응용 프로그램에 적합한 언어 프레임 워크가 아닙니다.
데이터가 처음에 어떻게 메모리에 저장 되었습니까? 실행 파일이 끝나면 메모리는 해제됩니다. 클립 보드에 데이터가 있습니까? 디스크에 메모리를 씁니까? 주요 캡처가 걱정 되니? 또는 귀하의 우려는 무엇입니까? –
타이머를 사용하여 클립 보드를 지울 때 디스크에 데이터가 기록되지 않습니다. 걱정할 필요가 없습니다. 그러나 텍스트 상자에있는 데이터가 메모리에 남아있을 수있는 곳을 읽었습니다. – Aaron
@mitte : 응용 프로그램이 실행되는 시간에만 ... –