AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Inhalt eines Memos binär speichern?

Ein Thema von Yakumo500 · begonnen am 3. Feb 2009 · letzter Beitrag vom 8. Feb 2009
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#11

Re: Inhalt eines Memos binär speichern?

  Alt 4. Feb 2009, 21:17
Zitat von Yakumo500:
Aber dann wird es bei mir nicht verschlüsselt angezeigt.
ja, weil da nichts verschlüsselt ist.
du hattest nicht den Inhalt des Memos gespeichert, sondern andere Daten, wenn überhaupt was Richtiges an Daten dabei war.


Hier wird nur der Zeiger auf den String gespeichert,
FileWrite(FileHandle, Text, SizeOf(Text)); das ist so, als wenn du die Position speicherst, wo du auf einem Bild zu sehen bist,
aber beim Laden befindet sich dort nun ein anderes Bild (der Speicher ist dann ja ein anderer), dann kannst'e mit der Position, wo du auf'm alten Bild zu sehen warst nicht mehr viel anfangen, da du garnicht mehr an der Stelle bist (in Wirklichkeit bist du auf dem neuen Bild garnicht mehr drauf zu sehn)


Wenn das Ganze dazu diehnen sollte die Strings zu verschlüsseln, dann mußt du das vor'm Speichern selber verschlüsseln (siehe z.B. Hier im Forum suchenDEC).
$2B or not $2B
  Mit Zitat antworten Zitat
Yakumo500

Registriert seit: 15. Nov 2008
Ort: Darmstadt
106 Beiträge
 
#12

Re: Inhalt eines Memos binär speichern?

  Alt 6. Feb 2009, 22:18
Ich meine so etwas müsste es doch geben als Standard Funktion.

Bei C++ z.b. geht es so:

Delphi-Quellcode:
#include <iostream>
#include <fstream>

using namespace std;

int main ()
{
   int Highscore = 0;

   cout << "Wie hoch ist der Highscore: ";
   cin >> Highscore;

   ofstream Output ("Highscore.txt", ios::binary);
   Output.write ((char*) &Highscore, sizeof(Highscore));

   Output.close();
}
Gut ist jetzt nur integer aber man kann es mit dem Editor nicht mehr lesen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#13

Re: Inhalt eines Memos binär speichern?

  Alt 6. Feb 2009, 23:02
tja, dirt wird die Binäre Darstellung des Integers gespeichert und die ist wirklich nicht so leicht lesbar,
aber die Binäre Darstellung eines Strings ist nunmal der Text selber und das ist nunmal lesbar, da der Editos diese binäre Darstellung auch kennt und diese dementsprechend "entschlüsselt" und dir den Text anzeigt

man könnte jetzt zwar z.B. einfach einen Unicode-BOM (Bei Google suchenByte Order Mark) vor einen AnsiText schreiben, dann würden alle Editoren, welche Unicode verstehen dieses auch "verschlüsselt" (nja, eigentlich nur falsch entschlüsselt) anzeigen, aber HEX-Editoren und Editoren, die kein Unicode verstehen, würden es dennoch "unverschlüsselt" anzeigen.

wie sehr willst du es denn verschlüsseln, bzw. wer soll es nicht entschlüsseln können?

das "Einfachst" wäre jetzt wohl eine "einfache" XOR-Verschlüsselung, wo ganz einfach Bits anhand eines "Schlüssels" umgedreht werden ... und wenn man die GLEICHEN Bits dann nochmal umdreht, dann kommt er Originaltext wieder zum Vorschein.

Delphi-Quellcode:
// Text von Variable "Text" verschlüsseln und speichern
S := Text;
For i := 1 to Length(S) do S[i] := Chr(Ord(S[i]) xor Ord('å'));
Laenge := Length(S);
FileWrite(FileHandle, Laenge, SizeOf(Laenge));
If Laenge > 0 Then FileWrite(FileHandle, S[1], Leange);

// gespeicherten Text in "Text" einlesen und entschlüsseln
FileRead(FileHandle, Laenge, SizeOf(Laenge));
SetLength(Text, Laenge);
If Laenge > 0 Then FileRead(FileHandle, Text[1], Laenge);
For i := 1 to Length(Text) do S[i] := Chr(Ord(Text[i]) xor Ord('å'));
schau dich einfach mal im Forum um, da gibt's einige Beispiele zu Verschlüsselungen.
- hier hab ich alles nur mit einem Zeichen verschlüsselt, also nach nur knapp 250 Versuchen hätte ich das auch ohne Schlüssel geknackt, aber man muß auch erstmal auf die Idee kommen, daß es auf diese Art verschlüsselt ist

PS: da ich weiß wie ein Integer intern aufgebaut ist, kann ich den Highscore leicht ändern ... wenige Sekunden und ich hab die Höchstpunktzahl von nur 2.147.483.647 Pünktchen
$2B or not $2B
  Mit Zitat antworten Zitat
Yakumo500

Registriert seit: 15. Nov 2008
Ort: Darmstadt
106 Beiträge
 
#14

Re: Inhalt eines Memos binär speichern?

  Alt 6. Feb 2009, 23:21
Ok Danke mir reicht eine zimelich einfache Verschlüsselung aus.
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#15

Re: Inhalt eines Memos binär speichern?

  Alt 8. Feb 2009, 10:05
Warum machst du es dir denn so kompliziert?

1. Schreib deine Strings in eine TStringList.
2. Geh die Liste Zeichen für Zeichen durch und "verschlüssele" jedes Zeichen mit eine XOR-Verknüpfung.
3. Rufe TStringList.SaveToFile auf

Das Laden geht mit TStringList.LoadFromFile, danach musst du wieder jedes einzelne Zeichen mit dem selben Wert XOR Verknüpfen und gut ist.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#16

Re: Inhalt eines Memos binär speichern?

  Alt 8. Feb 2009, 10:44
Zitat von guidok:
1. Schreib deine Strings in eine TStringList.
2. Geh die Liste Zeichen für Zeichen durch und "verschlüssele" jedes Zeichen mit eine XOR-Verknüpfung.
3. Rufe TStringList.SaveToFile auf
da muß er allerdings aufpassen, daß er durch die Verschlüsselung keine Zeichen erhält, welche die StringList nicht mag (also keine #13, #10 und #0), was sich bei dieser Verschlüsselung allerdings nicht vermeiden läßt.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#17

Re: Inhalt eines Memos binär speichern?

  Alt 8. Feb 2009, 13:51
du kannst auch TFileStream/TMemoryStream nehmen, die interessieren solche Sonderzeichen nicht.

Zitat von himitsu:
PS: da ich weiß wie ein Integer intern aufgebaut ist, kann ich den Highscore leicht ändern ... wenige Sekunden und ich hab die Höchstpunktzahl von nur 2.147.483.647 Pünktchen
mit cardinal gehts noch höher negative Zahlen braucht man ja bei nem Highscore nicht. aber solche Werte kann man ja mittels Prüfsumme/Hash/etc. absichern.

Gruß Frank
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz