Вопрос

Я перенес свою базу данных на свое мобильное устройство из VistaDB, потому что это слишком медленно.Теперь я использую ProtoBuf вместо этого для создания серии плоских файлов на карте памяти, единственная проблема в том, что там явно отсутствует шифрование.

Какой метод шифрования лучше всего работает с ProtoBuf?По сути, я сериализую коллекцию объектов данных в файл, а затем десериализую из файла обратно в свои коллекции.Я полагаю, что лучшее место для размещения шифрования было бы в FileStream при чтении / записи.

Данные будут содержать номера 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 encryption framework (в том числе о том, как получить объекты ICryptoTransform, см. Другие вопросы, такие как Каков наилучший способ шифрования коротких строк в .NET?.

Другие советы

Другим вариантом является фактическое шифрование всей папки, в которой хранятся данные, путем установки общесистемного фильтр файловой системы.Преимущества здесь заключаются в том, что:

  1. Код вашего приложения не зависит от шифрования, и шифрование будет выполняться в машинном коде.
  2. Поскольку шифрование выполняется в машинном коде, оно будет быстрее
  3. Поскольку шифрование не находится внутри управляемого кода, намного сложнее перепроектировать и вычислить ваши ключи, соли и т.д.

Конечно, недостатком (для тех, кто все равно не пишет на C) является то, что вы не можете написать это на C #.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top