![]() |
Re: Bilder Verschlüsseln
Hi,
Sollen die Bilder nur falsch aussehen, oder soll die ganze Datei verschlüsselt werden (nicht mehr darstellbar) ? Im 2. Fall wäre es etwas einfacher (finde ich). Mit corpsmans Methode ver- und entschlüsselst du. Beim ersten mal wird verschlüsselt, beim 2. mal wird entschlüsselt. |
Re: Bilder Verschlüsseln
Also falls du die Methode von corpsman verwenden willst, ist hier eine schnellere:
Delphi-Quellcode:
Ich hoffe das der Code so läuft. Hab grad kein Delphi hier. Kann sein, dass du die eigenen Farb-Bytes einzeln verschlüsseln musst.
procedure XorBitmapData(ABitmap: TBitmap; Key: Byte);
var p: PRGBQuad; i,j: Integer; begin ABitmap.Pixelformat := pf32Bit; for i := 0 to ABitmap.Height-1 do begin p := ABitmap.Scanline[i]; //(Kann auch Scanline(i) sein... weiß grad nicht) for j := 0 to ABitmap.Width-1 do begin PCardinal(p)^ := PCardinal(p)^ xor Key; inc(p); end; end; ABitmap.Pixelformat := pf24Bit; end; |
Re: Bilder Verschlüsseln
Zitat:
Code:
procedure XorBitmapData(ABitmap: TBitmap; Key: [b]Cardinal[/b]);
bzw.:
Delphi-Quellcode:
oder gleich
procedure XorBitmapData(ABitmap: TBitmap; Key: Byte);
var p: PByte; i,j: Integer; begin ABitmap.Pixelformat := pf24Bit; for i := 0 to ABitmap.Height - 1 do begin p := ABitmap.Scanline[i]; for j := 0 to (ABitmap.Width * 3) - 1 do begin p^ := p^ xor Key; inc(p); end; end; end;
Delphi-Quellcode:
procedure XorBitmapData(ABitmap: TBitmap; Key: Byte);
var p: PByte; i: Integer; begin ABitmap.Pixelformat := pf24Bit; p := ABitmap.Scanline[ABitmap.Height - 1]; // oder ABitmap.Scanline[0]; // *grübel* das Bild wird doch von unten nach oben gespeichert ??? for i := 0 to ABitmap.Height * ABitmap.Width * 3 - 1 do p^ := p^ xor Key; Inc(p); end; end; |
Re: Bilder Verschlüsseln
@Neutral General: natürlich würde mich auch interessieren wie man dateien verschlüsselt, wenn das einfacher geht. Allerdings habe ich keinerlei Erfahrungen im Dateien VERschlüsseln :mrgreen: .
|
Re: Bilder Verschlüsseln
Zitat:
Zitat:
Wenn du "nur" das Bild verschlüsseln willst, muß du den zugehörigen Overhead sichern, die reinen Bilddaten identifizieren und verschlüsseln, und dann alles wieder zu einer gültigen Bilddatei zusammen bauen. dann hast Du als Ergebnis eine "Bilddatei" wo auf dem Bild selbst nichts zu erkennen ist. wenn Du die vollständige Datei verschlüsselst, dann ist das Ergebnis eine Datei, die nicht mehr als Bilddatei zu erkennen ist. ("Irgend so ein binärer Schrott") Also noch einmal die Frage: was willst Du? wofür soll's gut sein? Gruß K-H |
Re: Bilder Verschlüsseln
Genau genommen interessiert mich beides. Zu der Verschlüsselungsmethode wo die pixel vertauscht werden, wurde ja bereits etwas gesagt. Aber zu der Dateiverschlüsselung leider weniger.
@Corpsman: warum kommt da ungültige EIngabedatei wenn ich impelemtieren will. KOmmt da noch was zu ? |
Re: Bilder Verschlüsseln
Delphi-Quellcode:
procedure XorBitmapData(ABitmap: TBitmap; Key: Cardinal);
var p: PByte; i,j: Integer; begin ABitmap.Pixelformat := pf24Bit; for i := 0 to ABitmap.Height - 1 do begin p := ABitmap.Scanline[i]; for j := 0 to (ABitmap.Width * 3) - 1 do begin p^ := p^ xor Key; inc(p); end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin XorBitmapData(Image1.Picture.Bitmap, StrToInt(Edit1.Text)); end; end. warum funktioniert das nicht??? [edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit] |
Re: Bilder Verschlüsseln
Punkt 1: "Es funktioniert nicht" ist KEINE Fehlerbeschreibung!
Punkt 2: Der Code sieht korrekt aus. WAS zum Henker funktioniert nicht, bzw. was erwartest du? Leute, lernt doch bitte endlich mal Fehler zu beschreiben und richtig Fragen zu stellen wenn ihr schon Hilfe möchtet... Ein Einzeiler reicht praktisch niemals dazu aus. |
Re: Bilder Verschlüsseln
Um es verständlicher zu machen: Ich wollte ein Bild verschlüsseln. Wenn ich jetzt aber auf den Button drücke passeirt nichts. :wall: Muss ich vielleicht etwas beachten wenn ich den KEy in Edit1 eintrage??
|
Re: Bilder Verschlüsseln
Wie schauts aus wenn du ein Image1.Repaint; hinter die Verschlüsslung setzt? Evtl. muss einfach mal nur neu gezeichnet werden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz