문제

너무 느리기 때문에 VistADB에서 멀리 떨어진 모바일 장치의 데이터베이스를 마이그레이션했습니다. 나는 이제 Protobuf를 사용하여 스토리지 카드에 일련의 플랫 파일을 만들고 있습니다. 유일한 문제는 암호화가 없다는 것입니다.

Protobuf와 가장 잘 맞는 암호화 방법은 무엇입니까? 기본적으로 데이터 엔티티 모음을 파일에 시리얼링 한 다음 파일에서 내 컬렉션으로 필수화합니다. 나는 암호화를 넣을 수있는 가장 좋은 장소는 읽기/쓰기의 파일 스트림에있을 것이라고 생각합니다.

데이터에는 NI 번호, 이름 및 주소가 포함되어 있으므로 안전해야합니다. 누구든지 누군가가 있습니까?

도움이 되었습니까?

해결책

나는 당신이 올바른 길을 가고 있다고 생각합니다. 당신은 다음과 같은 일을 할 수 있어야합니다.

ICryptoTransform encryptor = ...
Stream encStream = new CryptoStream(outputFileStream, encryptor, CryptoStreamMode.Write);
Serializer.Serialize(encStream, obj);
encStream.FlushFinalBlock()
encStream.Close();

ICryptoTransform decryptor = ...
Stream decStream = new CryptoStream(inputputFileStream, decryptor, CryptoStreamMode.Read);
Serializer.Deserialize<Type>(decStream);
decStream.FlushFinalBlock()
decStream.Close();

.NET의 암호화 프레임 워크의 기본 사항 (Icryptotransform 객체를 얻는 방법 포함)은 다음과 같은 다른 질문을 참조하십시오. .NET에서 짧은 문자열을 암호화하는 가장 좋은 방법은 무엇입니까?.

다른 팁

또 다른 옵션은 실제로 시스템 전체에 설치하여 데이터가 저장되는 전체 폴더를 실제로 암호화하는 것입니다. 파일 시스템 필터. 여기서 장점은 다음과 같습니다.

  1. 앱 코드는 암호화에 비해 적절하며 암호화는 기본 코드로 수행됩니다.
  2. 암호화는 기본 코드로 수행되므로 더 빠를 것입니다.
  3. 암호화는 관리 코드 내부에 있지 않기 때문에 리버스 엔지니어링하고 키, 소금 등을 파악하기가 훨씬 어렵습니다.

물론 단점 (어쨌든 C를 쓰지 않는 사람들의 경우)은 C#로 쓸 수 없다는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top