Datei mit Passwort versehen??
-
Ist es möglich mit C++ Funktion oder Befehlen eine erstellte Datei (z. B. Textdokument) mit einen Passwort zu versehen, wenn man es öffnen will.
-
nein!
aber du kannst ne textdatei mit c++ verschlüsseln!
dann kann einer mit notepad die datei zwar öffnen, sieht aber nur wirrzeugs!
-
Kryptografische Funktionen musst du entweder selber Programmieren oder eine fertige Bibliothek dafür nehmen. Es gibt keine eingebauten Befehle für Kryptografie.
Ich bin aber nicht ganz sicher, ob du das gleiche meinst wie ich. Reicht es dir, dass vor dem Entschlüsseln die Textdatei unleserlich ist (das ist die übliche Methode) oder willst du ein Programm das sich nach Passworteingabe selbst entschlüsselt und dann einen bestimmten Text anzeigt (das wäre je nach Anspruch sehr viel schwieriger)?
-
mir reicht es wenn die Datei verschlüsselt ist
Danke für die Antworten
@SeppJ & @nixda
-
Du meinst Passwort-basierte Ver-/Entschlüsselung? Ich kenne keine "fertige Lösung" (in Form einer Bibliothek, die es einem sehr einfach macht). So etwas selbst zu bauen, kann auch ganz schön nach hinten losgehen, auch wenn man anerkannte Bausteine wie AES, SHA-1, etc nutzt. Wenn man da einen Fehler macht, ist der "Schutz" wertlos.
Es gibt zumindest diverse Krypto-Bibliotheken, mit denen man relativ viel anstellen kann (findet man sehr schnell per Suchmaschine). Ich habe die allerdings nie ausprobiert.
Wenn Du mit AES und SHA-1 so etwas selbst bauen willst, könnte ich da noch'n paar Tipps geben -- ist aber auch alles nicht ganz so einfach.
Gruß,
SP
-
OK dann schieß mal los
Danke für die Antwort
-
Es kommt wirklich auf Deine Anforderungen an. Willst Du, dass
- man nicht erkennen kann, ob zwei Dateien mit dem gleichen Passwort verschlüsselt wurden, wenn man die Passwörter nicht kennt?
- man nicht erkennen kann, ob zwei Dateien den gleichen (entschlüsselten) Inhalt besitzen?
Wenn Du richtig auf die Kacke hauen willst, machst Du es so, wie es GnuPG tut. Dazu benötigst Du:
- ein Passwort
- einen guten Zufallsgenerator (zB /dev/random)
- eine gute kryptographische Hash-Funktion (zB SHA-256)
- einen guten "block cipher" (zB AES)
Zubereitung:
- Man nehme den Zufallsgenerator und generiere "Salz" (zufällige kurze Folge von Bytes, zB 16 bytes)
- Speichere dieses Salz in eine neu zu erstellende Datei
- Umhülle das Passwort mit Salz: x = Salz | Passwort | Salz (wobei | für Konkatenation steht)
- Berechne den Hash von x und benutze das Ergebnis k=hash(x) als Schlüssel
- Berechne den Hash von k, also c=hash(k) als Prüfsumme des Schlüssels und speichere diesen ab, damit Du beim Entschlüsseln feststellen kannst, ob das Passwort das richtige war.
- Verwende AES im CBC-Modus mit IV=0 und dem Schlüssel k und speichere die verschlüsselten Blöcke in der neuen Datei ab
- Am besten tust Du noch so, als würde am Ende deiner Eingangsdatei noch ein bestimmtes Muster oder eine Prüfsumme stehen, die dann mit verschlüsselt wird. Damit kannst Du dann noch die Integrität prüfen.
Ich habe Dich gewarnt.
Gruß,
SP
-
Whatda schrieb:
mir reicht es wenn die Datei verschlüsselt ist
Nimm eine einfache XOR Verschlüsselung. Da kommt keine Sau drauf.
Der Code zum Ver-/Entschlüsseln sind nur ein paar Zeilen.
-
Big Brother schrieb:
Whatda schrieb:
mir reicht es wenn die Datei verschlüsselt ist
Nimm eine einfache XOR Verschlüsselung. Da kommt keine Sau drauf.
Der Code zum Ver-/Entschlüsseln sind nur ein paar Zeilen.
Und das wird ungefähr einmal pro Woche hier gefragt. Mit der Forumssuche findest du bestimmt etwas dazu.
-
Ich habe mal B'B's Vorschlag umgesetzt und einen Text xor verschlüsselt:
*$c1,7+&1c%,1c31&0*'&-7bWer kann das knacken?
MfGTipp: Es handelt sich um ANSI Zeichen (kein UTF-8, UTF-16 etc.).
-
XOR-Verschlüsselung ist wenn der key nur einmal verwendet
wird und so lang ist wie der plain-Text unknackbar.Ist auch logisch, weil je nach key jede Zeichenfolge möglich ist.
Gruß,
Andreas
-
umsetz0r schrieb:
Wer kann das knacken?
MfG"Big Brother for president!"
Muahahahahah, mit dem hättest du nicht gerechnet.
:p
-
Na.. so schwer ist das auch nicht zu knacken. :p
http://gauss.ececs.uc.edu/Courses/C110/Lectures/Week3/3b6.html
Sorry Nexus, dass ich dir die Mystik geklaut habe..
-
drakon schrieb:
Na.. so schwer ist das auch nicht zu knacken. :p
Hier war es besonders einfach. Kein Wunder, wenn der Schlüssel nur aus einem Zeichen besteht.
Edit: Aber ich hatte zumindest ein eigenes Programm dafür geschrieben.
-
Na toll. Da seh ich das hier als Herausforderung an und in den 15 Minuten die ich brauche um mir einen XOR BruteForce Angriff selber zu schreiben und durchzuführen kommt mir trotzdem noch jemand zuvor
-
SeppJ schrieb:
Na toll. Da seh ich das hier als Herausforderung an und in den 15 Minuten die ich brauche um mir einen XOR BruteForce Angriff selber zu schreiben und durchzuführen kommt mir trotzdem noch jemand zuvor
Wusste ich doch, dass ich nicht der einzige wäre. Schön, dass du es auch versucht hast.
Aus irgendeinem Grund hatte ich die starke Vermutung, umsetz0r würde immer mit dem gleichen Zeichen verschlüsseln. Deshalb habe ich mein Programm auch relativ einfach aufbauen können (256 Fälle). Ich musste die Anwendung allerdings manuell abbrechen, da gewisse Steuerzeichen eine Endlosschleife hervorgerufen hatten.
-
Nexus schrieb:
SeppJ schrieb:
Na toll. Da seh ich das hier als Herausforderung an und in den 15 Minuten die ich brauche um mir einen XOR BruteForce Angriff selber zu schreiben und durchzuführen kommt mir trotzdem noch jemand zuvor
Wusste ich doch, dass ich nicht der einzige wäre. Schön, dass du es auch versucht hast.
Aus irgendeinem Grund hatte ich die starke Vermutung, umsetz0r würde immer mit dem gleichen Zeichen verschlüsseln. Deshalb habe ich mein Programm auch relativ einfach aufbauen können (256 Fälle). Ich musste die Anwendung allerdings manuell abbrechen, da gewisse Steuerzeichen eine Endlosschleife hervorgerufen hatten.
Aha. Ich habe es gleich mit einem beliebig langem Schlüssel versucht. Ich hatte geschätzt, dass umsetz0r wahrscheinlich einen Schlüssel bis maximal 10000 einsetzt, wenn er es als knackbar betrachtet. Ich war dann aber doch etwas überrascht, dass ich schon nach wenigen Bildschirmseiten etwas vernünftig lesbares erhalten hatte (eine automatische Prüfung mittels Wörterbuch war mir dann doch zu aufwändig). Das durch die Steuerzeichen hervorgehobene Gepiepse meines Rechners habe ich tapfer ertragen :p
edit: beliebig langer Schlüssel heißt nicht ganz beliebig, sondern nur bis INT_MAX
-
Nexus schrieb:
umsetz0r schrieb:
Wer kann das knacken?
MfG"Big Brother for president!"
Muahahahahah, mit dem hättest du nicht gerechnet.
:p
Die Lösung ist richtig!
Stimmt, ich bin in der Tat überrascht, obwohl ich es bewußt einfach gemacht habe. Ich habe auch so lange mit dem Schlüssel probiert, bis der Text optisch copy and paste gerecht war, weil ich nicht weiß ob das Forum-Textfenster whitespaces filtert (ist das so? wäre ja unfair :D).
Eigentlich habe ich einen längeren Schlüssel vorgesehen, aber ich habe mich verprogrammiertsodass er nur ein Zeichen lang wurde.
*peinlich*
Die Länge des Schlüssels ist sinvoller weise <= zu verschlüsselnde Textlänge oder?
Naja ...
Na wartet, den nächsten Text knackt ihr nicht!
*grins*Gruß,
u.
-
So, wer Zeit, Lust, Langeweile hat:
BRTY0Y G"Y^$P\0R5UoR”\7RBc9P?Q7Y&R2J-Y
^Die Textlänge ist 89 Zeichen, es kommt kein '\n' in ihr vor.
Copy and paste funzt bei mir verlustfrei ( Internet Explorer 8 ).
Schlüssellänge: Sag ich nicht :pLG,
u.
-
SeppJ schrieb:
Ich habe es gleich mit einem beliebig langem Schlüssel versucht. Ich hatte geschätzt, dass umsetz0r wahrscheinlich einen Schlüssel bis maximal 10000 einsetzt, wenn er es als knackbar betrachtet.
Hm, wie meinst du das? Ab 255 (meist so) werden die oberen Bits eh abgeschnitten. Und der Schlüssel kann ja höchstens so lang wie der Text selber sein, bzw. der Rest ist nicht relevant.
umsetz0r schrieb:
Die Länge des Schlüssels ist sinvoller weise <= zu verschlüsselnde Textlänge oder?
Nein, um sicher zu gehen, >= Textlänge. One-Time-Pads sind nämlich kryptographisch sicher, da man auch mit BruteForce nichts erreichen kann (man wird sehr viele sinnvolle Texte erhalten, wenn jedes Zeichen mit irgendeinem Schlüsselzeichen verXORt sein kann). Ohne Schlüssel kann aus der Nachricht keine sinnvolle Information gewonnen werden.
Deshalb habe ich auch etwas Angst vor deiner anderen Aufgabe, da der Schlüssel womöglich zu lange ist, als dass man es knacken könnte.