Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi JPEG-Bilder signieren (https://www.delphipraxis.net/42409-jpeg-bilder-signieren.html)

Gambit 18. Mär 2005 12:29


JPEG-Bilder signieren
 
Hallo,

ich kopiere mit einer Funktion Bilder aus einem Ordner in einen anderen(Transfer-Ordner) und rezise sie gleichzeitig. Danach werden die Bilder aus dem Transfer-Ordner auf einen Server per FTP hochgeladen.
Sollte beim FTP Transfer mal was schiefgehen, habe ich eine Funktion(bzw. Menupunkt) eingebaut um die Bilder aus dem Transfer-Ordner manuell hochzuladen. Dazu guckt die Funktion nach, ob in dem Ordner noch Bilder vorhanden sind und läd sie dann hoch.
Jetzt möchte ich aber verhindern, dass jemand auf die Idee kommt, einfach so Bilder in diesen Ordner zu packen, die eigenlich gar nicht für den Transfer bestimmt sind.
Wenn es jetzt möglich wäre, beim Kopieren von dem einen Ordner in den Transfer-Ordenr die Bilder zu signieren und meiner Funktion sage, dass sie nur signierte Bilder hochladen soll, wäre dem abgeholfen.

Also meine Frage: Kann man Bilder(JPEGs) irgendwie signieren?

Gruß

Gambit

jfheins 18. Mär 2005 16:02

Re: JPEG-Bilder signieren
 
Mach es doch einfach so, dass an die Bilder eine Prüfsumme angehängt wird. Dann guckst du, ob die Prüfsumme mit dem Inhalt übereinstimmt > übertragen (wenn nicht löschen ?)

ausserdem könntest du sie z.B. als .dat abspeichern ...

Gambit 18. Mär 2005 16:30

Re: JPEG-Bilder signieren
 
warum sollte ich sie als .dat abspeichern? Da kommt man ja aschnell dahinter. Ne Prüfsumme hört sich schon besser an aber wie hänge ich eine Prüfsumme an die Datei? Die Datei soll nat. hinterher auch noch als .jpg lesbar sein...

Basilikum 18. Mär 2005 17:21

Re: JPEG-Bilder signieren
 
"signieren"

1. Hash von JPG (z.B. bild1.jpg) berechnen
2. Hash von JPG mit Geheimnis konkatinieren
3. Resultat von 2. hashen und in separate Datei (z.B. bild1.jpg.sig) speichern

"prüfen vor kopieren"

1. Hash von JPG berechnen
2. Hash von JPG mit Geheimnis konkatinieren
3. Resultat von 2. hashen und mit Resultat gespeichert in separater Datei vergleichen

sofern niemand dein Geheimnis kennt, kann niemand eine korrekte .sig erzeugen

Mamphil 18. Mär 2005 17:25

Re: JPEG-Bilder signieren
 
Hi!

Vielleicht kannst du einen solchen Hash ja in den EXIF-Informationen des JPGs speichern und beim hochladen entfernen? :arrow: Hier im Forum suchenEXIF. Alternativ könntest du auch ein "eigenes Dateiformat" für deine JPGs anlegen, in dem du zum Beispiel vor jede JPG-Datei 32 Zeichen mit der Prüfsumme setzt. Vor dem Hochladen muss die natürlich wieder entfernt werden und du machst aus einer ungültigen Datei so eine gültige...

Mamphil

Gambit 18. Mär 2005 17:37

Re: JPEG-Bilder signieren
 
die Idee von Basilikum ist recht gut, ist doch sowas ähnliches wie nen Timestamp verpassen(zum Schutz für Dateien)
Dann muss ich mich wohl mal mit dem Hashen befassen...

jfheins 18. Mär 2005 18:56

Re: JPEG-Bilder signieren
 
Einfach das hier http://www.swissdelphicenter.ch/de/showcode.php?id=324 machen, an die Datei anhängen und fertig is. Du kannst den ja noch ein bisschen modifizieren ...
Also
Speichern:
:arrow: Bild speichern
:arrow: Checksumme errechnen
:arrow: Checksumme anhängen
:arrow: (wenn variabel, länge auch noch anhängen)

Laden:
:arrow: Checksumme auslesen
:arrow: Checksumme bilden
:arrow: vergleichen

Gambit 18. Mär 2005 19:09

Re: JPEG-Bilder signieren
 
@jfheins: So richtig raff ich nicht wie du das meinst. Ich bilde also die Checksumme der Datei und hänge sie an die Datei ran. Gut. Und dann? Sollte nun jemand Dateien in den Ordner legen, die da nicht hingehören und die also gelöscht anstatt hochgeladen werden sollen, kann ich die daran erkennen, das sie keine Checksumme angehängt haben? Dann könnte ich doch auch irgendwas anhängen...ich weiß immer noch nicht genau, wie du dir den Ablauf vorstellst...

jfheins 18. Mär 2005 19:17

Re: JPEG-Bilder signieren
 
Naja, du frickelst dir halt deine Checksumme zusammen und hängst sie an die Datei an, so dass du Sie auch wieder auslesen kannst. Dann kannst du immer überprüfen, ob das jetzt eine von dir erstellte Datei ist, oder nicht. Zur Benutzung muss du halt die Checksumme wieder entfernen.

Du könntest die auch vorne dranhängen, und dann mit einem Trenner vom Rest abgrenzen, damit dürfte die komplette Datei ungültig werden.

Jo, du könntest auch irgendwas dranhängen, aber dann ist deine Sicherung einfacher zu erkennen und somit einfacher zu umgehen.

Du musstdie falschen Dateien ja nicht gleich löschen, aber so kannst du verifizieren, ob die datei von deinem Programm erstellt wurde. Modifizier am besten noch den Algo, damit er etwas andere Checksummen erstellt, sonst könnte ja jemand diesen Codeschnipsel entdecken und dahinterkommen ...

Gambit 18. Mär 2005 19:30

Re: JPEG-Bilder signieren
 
naja, ich die JPEGs auch verschlüsselt ablegen und vorm Hochladen entschlüsseln. Dann müsste jemand der "gefälschte" JPEGs hochladen will erst mal den Verschlüsselungsalgorhythmus kennen damit mein Programm sie akzeptiert...


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