2016-06-18 15 views
0

Mein Ziel ist es, eine Zeichenfolge in ein ByteArray zu konvertieren, schreiben Sie diese ByteArray als ByteArray in eine Zeichenfolge, so dass es nicht lesbar ist aber immer noch nach "ByteArray to String" Konvertierung in C#. DieseSchreiben eines ByteArray zu Datei AS-Bytes in C#

ist, wie mein Code jetzt ist:

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

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

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

Diese in der Theorie funktioniert, aber die endgültige Ausgabedatei hat den gleichen Inhalt der Zeichenfolge, und nicht die konvertierte ByteArray. Dies ist, was die Datei enthält:

database.dat

{ "Datenbank": { "Tabellen": { "Benutzer": [ "Spalte": { "id": "1" "name": "Test"}]}}}

Aber ich erwartete etwas wie

l4 @ C} nC (YXX> AI0ve,22úL «*„ÑÃYgPæaiäi ‚Ê ¢ ± · Ä^|^Û × RÉ! × ¹ÝYPZŠO • QÚÉèT "g '

Was mache ich falsch? Ist das kein ByteArray? Gibt es eine andere Möglichkeit, Daten in eine nicht lesbare Datei zu konvertieren und sie dann wieder in eine Zeichenfolge in meinem Programm konvertieren zu können?

+2

Nichts falsch, kodieren Sie Ihren String als ASCII-Byte-Array, das dann in der Datei speichern. Dann dekodiert Notepad es als ASCII-Zeichenfolge. –

+0

Aber genau das will ich nicht? Ich möchte, dass die Datei ein Bytearray und kein lesbarer Text ist. Das ist nicht gerade „sicher“ :) –

+0

Ihre Datei bytearray genau ist, aber Notepad kann nur dekodieren als ASCII-String;) –

Antwort

2

Was mache ich falsch? Ist das kein ByteArray? Gibt es eine andere Art und Weise , um Daten in eine lesbare Datei zu umwandeln und dann in der Lage sein, es zu konvertieren in eine Zeichenkette in meinem Programm?

Hängt davon ab, wie viel unlesbar Sie es wollen? Im Extremfall müssen Sie möglicherweise eine Verschlüsselung verwenden.

In Ihrem Fall sind Speicher Sie ASCII-Darstellung der Zeichenfolge in eine Datei, so natürlich ein Texteditor, es zurück zu Ihnen lesen kann.

Eine Möglichkeit, versuchen wird, um den Byte-Array umzuwandeln, die Sie Base64-codierte Zeichenfolge erhalten - und speichern Sie diese Zeichenfolge in der Datei. So wird es nicht leicht lesbar sein, aber jemand anderes kann es noch entschlüsseln, wenn er/sie es versucht. Die Sicherheitsgarantien sind also nicht so hoch. Aber wieder, hängt von Ihren Bedürfnissen ab.

+0

Das würde es natürlich tun. Wenn ich fragen darf, wissen Sie, wie andere Dateien das machen? Wie Datenbanken usw.? –

+0

@KevinJensenPetersen Hängt davon ab, wie viel Sicherheit Sie wollen? Wenn Sie möchten, dass es sicher ist, verwenden Sie Verschlüsselung. Google symmetrische Verschlüsselung zum Beispiel. Aber dann müssen Sie möglicherweise auf die Schlüsselverwaltung usw. achten. –

+0

Sie können auch DeflateStream verwenden. Als zusätzlichen Bonus speichern Sie ein paar Bytes. –