2016-06-18 17 views
0

私の目標は、文字列をByteArrayに変換し、このByteArrayをByteArrayとして文字列に書き込んで読み込み不能にするが、C#の "ByteArrayからString"ByteArrayをCのASバイトにファイルに書き込む

これは私のコードが今ある方法です:

string json = "{\"database\":{\"tables\":{\"Users\":[\"column\":{\"id\":\"1\", \"name\":\"Test\"}]}}}"; 

var bytes = Encoding.ASCII.GetBytes(json); 

File.WriteAllBytes("database.dat", bytes); 

これは理論的には動作しますが、しかし、最終的な出力ファイルは、文字列ではなく、変換されたByteArrayの同じ内容を持っています。これは、ファイルに含まれるものである:{ "テーブル":{ "ユーザー":[ "列":{ "ID": "1"

{ "データベース" database.dat

、 "名前": "テスト"}]}}}

しかし、私は

L4する@ C} NC(YXX>AI0ve,22úL«*「ÑÃYgPæaiäi 「E¢±のようなものを期待・・・・・・・・・・・'²²¡¥g²Ô

私は間違っていますか?これはByteArrayではありませんか?データを読み込み不可能なファイルに変換し、それをプログラムの文字列に変換できる別の方法はありますか?

+2

何も問題はありません。文字列をASCIIバイト配列としてエンコードし、ファイルに保存します。それから、メモ帳はそれをASCII文字列としてデコードします。 –

+0

それはまさに私が望んでいないものですか?私はそのファイルを読み書き可能なテキストにしたいのですか?それはちょうど "安全"ではありません:) –

+0

あなたのファイルはbytearrayですが、メモ帳だけでASCII文字列としてデコードすることができます;) –

答えて

2

私は間違っていますか?これはByteArrayではありませんか?別の方法がありますか? は、データを読み取り不可能なファイルに変換してから、 を私のプログラムの文字列に変換することができますか?

あなたはどれくらい読めないのでしょうか?最も極端な場合には、暗号化を使用する必要があります。

あなたのケースでは、文字列のASCII表現をファイルに保存しているので、テキストエディタで読み込むことができます。

取得したバイト配列をbase64でエンコードされた文字列に変換して、その文字列をファイルに保存してみてください。そうすれば、簡単には判読できないでしょうが、他の誰かがそれを解読することができます。したがって、提供されるセキュリティ保証はあまりありません。しかし、再び、あなたのニーズに依存します。

+0

それはやめてしまうのです。もし私が尋ねることができるなら、他のファイルがそれをどうやって行うのか知っていますかデータベースなど? –

+0

@KevinJensenPetersenどのくらいのセキュリティが必要ですか?安全にしたい場合は、暗号化を使用してください。 Googleの対称暗号化など。しかし、キー管理などの面倒を見る必要があるかもしれません。 –

+0

DeflateStreamを使うこともできます。追加ボーナスとして、数バイトを節約します。 –

関連する問題