CryptUnprotectData windows API 함수와 .net SecureString을 가능한 한 가장 좋은 방법으로 연결하려고합니다. CryptUnprotectData는 바이트 배열과 바이트 길이로 구성된 DATA_BLOB 구조를 반환합니다. 내 프로그램에서는 유니 코드 UTF-16 문자열이됩니다. SecureString는 문자 *와 길이 PARAMS를 사용하는 생성자를 가지고, 그래서 나는 같은 것을 할 수 있도록하고 싶습니다 : UTF-16는 가변 길이를 제외하고,관리되지 않는 유니 코드 문자열에서 SecureString 만들기
SecureString ss = SecureString((char*)textBlob.pbData, textBlob.cbData/2);
이 작품을, 그래서 나는 정말 모른다 길이 인수로 사용할 값 위의 예는 2 바이트 문자 (BMP)를 가정하지만 다른 비행기의 경우 최대 4 바이트가 될 수 있습니다. 바이트 배열에서 UTF-16 문자 수를 알아야합니다. 메모리에서 값을 복사하지 않고 (따라서 보안을 손상시키는)이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 가능한 한 빨리 바이트 배열을 해제하고 해제 할 계획입니다.
고마워요, 존 완벽한 말이예요! 이 물건들은 모두 나에게 새롭다. – Jarrod