AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

JSON/Superobject mit Binären Daten

Ein Thema von Shark99 · begonnen am 13. Jul 2016 · letzter Beitrag vom 14. Jul 2016
Antwort Antwort
Seite 1 von 2  1 2   
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#1

JSON/Superobject mit Binären Daten

  Alt 13. Jul 2016, 15:40
Ich bin dabei das JSON Format mittels superobject zu speichern und bin mir beim Escapen unsicher.

Ich nehme einen String sAESData der per AES Verschlüsselt wird.

Diesen sAESData der Binäre Daten erhält wandle ich so in JSON um:
Delphi-Quellcode:
var soString: ISuperObject;
    sAESData: string;
    sOutput: string;

...

  soString := TSuperObject.Create(sAESData);
  sOutput := soString.AsJSon;
  soString := nil;
In den Tests klappt bisher alles. Auch wenn sAESData 0-Bytes enthält gibt es keine Exception und sOutput schaut OK aus.

Ich wollte trotzdem Fragen ob hier keine Falle lauert! Kann ich soString.AsJSon für beliebige binäre Daten verwenden?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: JSON/Superobject mit Binären Daten

  Alt 13. Jul 2016, 15:58
Um auf Nummer sicher zu gehen würde ich die binären Daten als Base64-String speichern.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#3

AW: JSON/Superobject mit Binären Daten

  Alt 13. Jul 2016, 17:29
Das macht die Datei eine Ecke größer. Würde es nur machen wenn es wirklich notwendig ist.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: JSON/Superobject mit Binären Daten

  Alt 13. Jul 2016, 17:46
Das macht die Datei eine Ecke größer. Würde es nur machen wenn es wirklich notwendig ist.
Sobald dein AES String zufällig das Äquivalent zu einem der JSON Trennzeichen beinhaltet, wird die Datei ungültig werden. Base64 ist definitiv erforderlich.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#5

AW: JSON/Superobject mit Binären Daten

  Alt 13. Jul 2016, 18:02
Welches spezifisches JSON Trennzeichen meinst du?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: JSON/Superobject mit Binären Daten

  Alt 13. Jul 2016, 18:20
Geschweifte Klammern, Kommas, etc. Alles was bei JSON zur Syntax dazugehört
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#7

AW: JSON/Superobject mit Binären Daten

  Alt 13. Jul 2016, 18:34
Hmm verstehe ist nicht.

Wenn ich den Text "abc{," habe wird daraus

{"string": "abc{,"}

Und ein JSON Validator hat kein Problem damit.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: JSON/Superobject mit Binären Daten

  Alt 13. Jul 2016, 18:36
Das macht die Datei eine Ecke größer. Würde es nur machen wenn es wirklich notwendig ist.
Sobald dein AES String zufällig das Äquivalent zu einem der JSON Trennzeichen beinhaltet, wird die Datei ungültig werden. Base64 ist definitiv erforderlich.
Nö, die werden von SuperObject entsprechend escaped, ist also insofern kein Problem.
Hmm verstehe ist nicht.

Wenn ich den Text "abc{," habe wird daraus

{"string": "abc{,"}

Und ein JSON Validator hat kein Problem damit.
Eben weil SuperObject darauf achtet (achten sollte)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: JSON/Superobject mit Binären Daten

  Alt 14. Jul 2016, 11:33
"binäre" Daten in einem "String" ... wo es hier Probleme geben kann/wird, ist bei der Codierung, z.B. Umwandlung von Unicode (der Typ String seit D2009) z.B. nach ANSI, jenachdem wie das JSON am Ende gespeichert wird.
Außer SuperObjekt sorgt immer dafür, dass das JSON nur noch ASCII-Zeichen enthält.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: JSON/Superobject mit Binären Daten

  Alt 14. Jul 2016, 11:44
Bei JSON gibt es wenig Spielraum wie da was gespeichert wird

http://json.org
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:40 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