Entwickler-Ecke

Freeware Projekte - Crypt To BMP - einfaches Verschlüsselungstool


Delete - Mo 16.01.06 19:06
Titel: Crypt To BMP - einfaches Verschlüsselungstool
Hallo!
Hier mein erstes (mehr oder weniger) sinnvolles Programm: :dance:

Crypt To BMP

Es verschlüsselt Dateien und Texte als Bitmaps, womit eigentlich schon alles gesagt wäre.
Man kann zwischen drei Codefarben (Rot Grün Blau - wer hätte es gedacht? ;) ) wählen.
Das Programm ist allerdings nur für kleinere Dateien geeignet da sonst der Festplattenspeicherbedarf etwas groß wird... :|

Ich bin gespannt auf eure Meinung!

Hier der Downloadlink zum Programm:
http://home.arcor.de/mmx11/delphi/CryptToBMP.rar

[Version 0.8.0]
* Es sollte alles funktionieren (bis auf die Hilfe).

//EDIT 16.1.06
[Version 0.8.1]
* .bmp-Endung muss bei den BMPs nicht mehr von Hand eingegeben werden
* Großer Speichern-Button eingefügt

//EDIT 17.1.06
[Version 0.8.2]
* Speichern/Laden-Dialoge können nun (wirklich) abgebrochen werden
* Kommandozeilenfunktionen für Textver- und Entschlüsselung
* Kommandozeilenfunktionen für Dateiver- und Entschlüsselung
* Bild-Laden Button

//EDIT 22.1.06
[Version 0.8.3]
* Zum Auffüllen des Quadrats angehängte Leerzeichen werden beim entschlüsseln wieder gelöscht
* Ein Speicherleck wurde entfernt
* Alternative verkürzte Befehle für Kommandozeilenoperationen: t2b , b2t , f2b , b2f (t:Text,f:File,b:BMP)
* Pixelformat explizit auf 24 Bit festgesetzt


stifflersmom - Mo 16.01.06 20:12

Klasse, wenn auch nicht neue, Idee.
Allerdings:
Beim Speichern des Bildes MUSS man die Dateiendung selber angeben, das ist unschön.
Wie kommt man an den verschlüsselten Text wieder ran?

Moin


Sirke - Mo 16.01.06 20:25

Ich habe leider einen kleinen Bug im Programm gefunden:

Wenn du einen Text im Bild verschlüsselst, dann bekommt man nach jedem Klick auf "Text >> Bild" ein neues Bild als Ergebnis, was eigendlich nicht sein sollte.
Außerdem bekommt man aus den Bildern keinen Sinnvollen Text wieder heraus.

Da muss irgendwo im Quelltext noch n Fehler sein!


maaalin - Mo 16.01.06 21:12

user profile iconSirke hat folgendes geschrieben:
Ich habe leider einen kleinen Bug im Programm gefunden:

Wenn du einen Text im Bild verschlüsselst, dann bekommt man nach jedem Klick auf "Text >> Bild" ein neues Bild als Ergebnis, was eigendlich nicht sein sollte.
Außerdem bekommt man aus den Bildern keinen Sinnvollen Text wieder heraus.

Da muss irgendwo im Quelltext noch n Fehler sein!


ich finde es grade gut, dass man jedesmal ein anderes bild kriegt.
und du musst halt drauf achten, dass beim entpacken die gleiche farbe benutzt wird wie beim packen, sonst geht es nicht.

also bei mir hats wunderbar funktioniert


Delete - Mo 16.01.06 22:02

user profile iconstifflersmom hat folgendes geschrieben:
Wie kommt man an den verschlüsselten Text wieder ran?

Das Bild über Datei > Bild Laden laden und dann im Textmodus (wenns text war) und mit der richtigen codefarbe auf text << bild klicken!



user profile iconSirke hat folgendes geschrieben:
Außerdem bekommt man aus den Bildern keinen Sinnvollen Text wieder heraus.

Da muss irgendwo im Quelltext noch n Fehler sein!

Was machst du denn genau? Also bei mir und nem kumpel geht die Textverschlüsselung einwandfrei.


Sirke - Di 17.01.06 09:55

user profile iconmmmichael hat folgendes geschrieben:
Was machst du denn genau? Also bei mir und nem kumpel geht die Textverschlüsselung einwandfrei.


Ich gebe einen Text ein, und verschlüssel ihn mittels "Text >> Bild". Wenn ich dann auf "Text << Bild" klicke, dann erscheint ein anderer Text als der von mir eingegebene!

user profile iconmaaalin hat folgendes geschrieben:
ich finde es grade gut, dass man jedesmal ein anderes bild kriegt.


ähm ... wenn eine Verschlüsselung nicht eindeutig ist, dann kann man sie nicht Rückgängig machen! Oder wenn jedes Mal ein anderer Key verwendet wird, dann sollte man diesen wissen, damit man das Bild entschlüsseln kann!


Raffo - Di 17.01.06 10:30

Superklasse! Gibt es auch Kommandozeilen Optionen oder würdest Du das einbauen? Ich denke hier an

CrypToBMP.exe password.txt passwort.bmp (entschlüsselt .txt Text in .txt)
oder
CrypToBMP.exe "mein text" passwort.txt (entschlüsselt .bmp Text in .txt)

CrypToBMP.exe password.bmp passwort.txt (entschlüsselt .bmp Text in .txt)


Delete - Di 17.01.06 16:35

user profile iconSirke hat folgendes geschrieben:
ähm ... wenn eine Verschlüsselung nicht eindeutig ist, dann kann man sie nicht Rückgängig machen! Oder wenn jedes Mal ein anderer Key verwendet wird, dann sollte man diesen wissen, damit man das Bild entschlüsseln kann!

Ähm... es ist eindeutig. Glaub mir. Der einzige schlüssel den es gibt und mit dem man dei verschlüsselung rückgängig machen kann ist die Farbe. Es gibt drei schlüssel (warum mein programm auch nie in dei top 10 der kryptographie-tools kommen wird :P ) und das wars.

user profile iconSirke hat folgendes geschrieben:

Ich gebe einen Text ein, und verschlüssel ihn mittels "Text >> Bild". Wenn ich dann auf "Text << Bild" klicke, dann erscheint ein anderer Text als der von mir eingegebene!

Keine Ahnung. Also bis jetzt ging es noch bei jedem. Versuch mal die neue Version.

Hat noch jemand anderes dieses Problem?



user profile iconRaffo hat folgendes geschrieben:
Superklasse! Gibt es auch Kommandozeilen Optionen oder würdest Du das einbauen?

Gibt es noch nicht und ich hatte sowas auch eigentlich nicht vor... Wüsste auch gar nicht wie das geht... :?


Raffo - Di 17.01.06 16:50

Du kannst im Delphi die paramstr(1) und so weiter abfragen. Also im OnCreate der Form fragst Du ob paramstr(1) gegeben ist, nehmen wir an das wäre die Eingabedatei und paramstr(2) die Ausgabedatei. Du musst hier also die Menüfunktionen sozusagen übergehen und direkt in die Routine springen, die das Bildspeichern auslöst.


Delete - Di 17.01.06 17:00

Hab grad rausgefunden dass das Programm auf unserem Schulrechner für Texte wirklich nicht geht...
Woran könnte es liegen? Am Betriebssystem? In der Schule haben wir Win2000, daheim XP.
//EDIT: An einem Win98SE rechner funktionierts...

Dies bedarf weiterer Recherchen! :!:

//EDIT: Hab mir grad die Delphi-Hilfe zu paramstr und paramcount angesehen. Hört sich nett an, glaub das bau ich auch noch ein! :)


stifflersmom - Di 17.01.06 20:22

user profile iconmmmichael hat folgendes geschrieben:
user profile iconstifflersmom hat folgendes geschrieben:
Wie kommt man an den verschlüsselten Text wieder ran?

Das Bild über Datei > Bild Laden laden und dann im Textmodus (wenns text war) und mit der richtigen codefarbe auf text << bild klicken!


Stimmt, klappt einwandfrei.
Eine Kommandozeilenoption wäre wirklich sehr gut!

Moin


BenBE - Di 17.01.06 20:28

Schau mal in den Anzeigeoptionen, ob die Farbtiefe auf 24 oder 32 bit eingestellt ist.

Um den Fehler permanent zu umgehen solltest du explizit BMP.Pixelformat := pf24bit; zuweise.


Raffo - Di 17.01.06 20:33

Wie stifflersmom schon sagte, ich hab ein bisschen herum experimentiert, per kommandozeile lässt sich mit Irfan View das Bild drehen, das ganze mit WinZip / -Rar passwortgeschützt zippen und - voila ist im Prinzip ne security Mail möglich. Daher finde ich auch das Potiential an Deiner Routine - Willst Du die Quelle nicht offenlegen?


JayEff - Di 17.01.06 21:52

Bug: Erst verschlüsselnb, dann wieder entschlüsseln und wieder verschlüsseln ergibt bei mir ein Bild, dessen Seiten um 1 px größer sind, als das vorherige. Grund: angefügte Leertasten. x_X


Delete - Di 17.01.06 22:30
Titel: Kommandozeile
Das Programm kann nun in der neuesten Version auch wie gewünscht von der Kommandozeile aus gesteuert werden.

Funktionen:
>> Textverschlüsselung

Quelltext
1:
C:\Beispielpfad>CryptToBMP (Funktion) (Farbe) (Dateiname) (Text*)                    

Funktion: TextToBMP oder BMPToText
Farbe: 0,1 oder 2 (= rot, grün oder blau)
Dateiname: Der Name der BMP Datei ohne .bmp-Endung (wird von selbst hinzugefügt)
Text: Euer Text...*

* Nur bei TextToBMP. Bei BMPToText wird der Text als .txt-Datei mit dem Namen des Bildes im Programmverzeichniss gespeichert.

>> Dateiverschlüsselung

Quelltext
1:
C:\Beispielpfad>CryptToBMP (Funktion) (Farbe) (DateinameBMP) (DateinameFILE)                    

Funktion: FileToBMP oder BMPToFile
Farbe: 0,1 oder 2 (= rot, grün oder blau)
DateinameBMP: Name/Pfad der Bitmapdatei ohne .bmp-Endung (wird von selbst hinzugefügt)
DateinameFILE: Name/Pfad der zu ver-/entschlüsselnden Datei (nicht die korrekte Dateiendung vergessen!)


Was haltet ihr davon?

MMMichael


Raffo - Di 17.01.06 23:07

Hey, schön das Du Dich darum kümmerst, ich würde jedoch folgende Konvention vorschlagen. Sinnvoll finde ich auch nur die Verschlüsselung auf Dateibasis, wie in Deinem Programm per Menü auswählbar (achte auf den neuen Namen):


Quelltext
1:
bCrypt.exe /c:g input.file output.file                    

Beispiel: bCrypt.exe /c:g text.txt picture.bmp {c=crypt}

(Verschlüsselt INPUT.TXT nach OUTPUT.BMP)

oder anders herum

bCrypt.exe /e:g picture.bmp text.txt{e=encrpyt}

(Entschlüsselt INPUT nach OUTPUT)

Als allgemeine Konvention kann für die Eingabeaufforderung gelten:


Quelltext
1:
2:
bCrypt.exe /c:[r/g/b] input.txt output.bmp
bCrypt.exe /e:[r/g/b] input.bmp output.txt


So weiss eigentlich jeder, wie es zu benutzen ist, dann siehts auch schon so aus wie die normal üblichen Kommandozeilen Tools. Ich für meinen Teil würde solche Tools auch gleich auf englisch machen (falls es für Dich kein Probl. darstellt).

P.S. ob die Routine nun eine Extension automatisch hinzufügt, wäre absolut egal.


Raffo - Di 17.01.06 23:09

Ach ja, Du kannst den Namen ja auch Deinem Nicknamen anpassen, meinetwegen mmcrypt


Delete - Mi 18.01.06 14:50

user profile iconRaffo hat folgendes geschrieben:
Ach ja, Du kannst den Namen ja auch Deinem Nicknamen anpassen, meinetwegen mmcrypt
Welchen? Den Programmnamen?

user profile iconRaffo hat folgendes geschrieben:


Quelltext
1:
bCrypt.exe /c:g input.file output.file                    

Beispiel: bCrypt.exe /c:g text.txt picture.bmp {c=crypt}

(Verschlüsselt INPUT.TXT nach OUTPUT.BMP)

oder anders herum

bCrypt.exe /e:g picture.bmp text.txt{e=encrpyt}

(Entschlüsselt INPUT nach OUTPUT)

Als allgemeine Konvention kann für die Eingabeaufforderung gelten:


Quelltext
1:
2:
bCrypt.exe /c:[r/g/b] input.txt output.bmp
bCrypt.exe /e:[r/g/b] input.bmp output.txt


So weiss eigentlich jeder, wie es zu benutzen ist, dann siehts auch schon so aus wie die normal üblichen Kommandozeilen Tools. Ich für meinen Teil würde solche Tools auch gleich auf englisch machen (falls es für Dich kein Probl. darstellt).
Ich verstehe nicht ganz was du meinst... (Hab noch nie mit Kommandozeilenfunktionen gearbeitet... :( )
Was meinst du z.B. mit /e:g? erklärs mir doch bitte mal per pm oder gib mir einen link wo ich die Konventionen für Kommandozeileneingabe find! Wäre toll!

user profile iconJayEff hat folgendes geschrieben:
Bug: Erst verschlüsselnb, dann wieder entschlüsseln und wieder verschlüsseln ergibt bei mir ein Bild, dessen Seiten um 1 px größer sind, als das vorherige.
Wird in Angriff genommen! :)


Raffo - Mi 18.01.06 18:47

Genial, es geht, danke.


JayEff - Mi 18.01.06 20:31

Äääähn mitte schreib nicht "ncrypt" als "entschlüsseln". "Encrypt" heist "VERschlüsseln", "DEcrypt" heist Entschlüsseln. Aber crypt ist eh ein komisches Wort, nimm lieber Encode und Decode, da weis ich genau dass die Bedeutung im Englischen genau getroffen ist.


Raffo - Mi 18.01.06 20:41

Du hast Recht, ich brachte es selbst durcheinander mit Crypt und hätte dann sagen sollen DeCrypt. Nichtsdestotrotz, Michael will die Schreibweise FileToBmp sowie BmpToFile beibehalten.


Delete - So 22.01.06 14:23

In der neuesten Version gibt es jetzt verkürzte kommandozeilenparameter (alternativ, die alten gehen immer noch):

t2b für TextToBMP
b2t für BMPToText
f2b für FileToBMP
b2f für BMPToFile

Die Leerzeichen am Ende des Textes werden auch entfernt, sodass das Bild nicht immer größer wird.

Habe zudem noch das Pixelformat festgesetzt und hoffe dadurch den Fehler der u.a. bei Sirke auftrat behoben zu haben.

MMMichael