隔離されたストレージファイルを暗号化して復号化します。隔離されたストレージファイルの暗号化と復号化
Microsoftのサイトには、エミュレータ上で分離ストレージを使用しているときにエミュレータが動作するようになるまで、それだけで存続することができ、私にhere
を取りました。
隔離保管の物理的な場所を取得する方法はありません。
上記の声明が正しいことを願っています。
ここで、Isolated Storageファイルをどのように暗号化できますか?
ここでは、マイクロソフト、(アプリケーション名がGasMileageです)
によって提供された例を取るとすると、コード
namespace CodeBadger.GasMileage.Persistence
{
public class IsolatedStorageGateway
{
private const string StorageFile = "data.txt";
private readonly XmlSerializer _serializer;
public IsolatedStorageGateway()
{
_serializer = new XmlSerializer(typeof (Notebook));
}
public Notebook LoadNotebook()
{
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
using (var stream = GetStorageStreamForReading(store))
using (var reader = new StreamReader(stream))
{
return reader.EndOfStream
? new Notebook()
: (Notebook) _serializer.Deserialize(reader);
}
}
}
public NotebookEntry LoadEntry(Guid guid)
{
var notebook = LoadNotebook();
return notebook.Where(x => x.Id == guid).FirstOrDefault();
}
public void StoreEntry(NotebookEntry entry)
{
var notebook = LoadNotebook();
AssignId(entry);
RemoveExistingEntryFromNotebook(notebook, entry);
Console.WriteLine(entry);
notebook.Add(entry);
WriteNotebookToStorage(notebook);
}
public void DeleteEntry(NotebookEntry entry)
{
var notebook = LoadNotebook();
RemoveExistingEntryFromNotebook(notebook, entry);
WriteNotebookToStorage(notebook);
}
private void WriteNotebookToStorage(Notebook notebook)
{
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
using (var stream = GetStorageStreamForWriting(store))
{
_serializer.Serialize(stream, notebook);
}
}
private static void AssignId(NotebookEntry entry)
{
if (entry.Id == Guid.Empty) entry.Id = Guid.NewGuid();
}
private static void RemoveExistingEntryFromNotebook(Notebook notebook, NotebookEntry entry)
{
var toRemove = notebook.Where(x => x.Id == entry.Id).FirstOrDefault();
if (toRemove == null) return;
notebook.Remove(toRemove);
}
private static IsolatedStorageFileStream GetStorageStreamForWriting(IsolatedStorageFile store)
{
return new IsolatedStorageFileStream(StorageFile, FileMode.Create, FileAccess.Write, store);
}
private static IsolatedStorageFileStream GetStorageStreamForReading(IsolatedStorageFile store)
{
return new IsolatedStorageFileStream(StorageFile, FileMode.OpenOrCreate, FileAccess.Read, store);
}
}
今、私は与えられたdata.txtをを暗号化するために、どのように、知ってほしいですコンテキスト。
アプリケーションの読み込み時にファイルを復号化し、アプリケーション終了時に暗号化する必要があります。
誰か助けてもらえますか?
ありがとう@リチャード。私は、パスワード、接続文字列、PINなどの機密データを暗号化および復号化できるDPAPIについて認識しています。隔離されたストレージファイル全体を暗号化するものがあれば、それを知りたかったのです。たとえば、データが読めない形式のテキストファイルです。 – Anil
DPAPIを使用してデータを暗号化したら、そのデータをテキストファイルに書き込みます。テキストファイルを読み込むときは、バイト配列にロードしてテキストを読み取る前に解読します。 –