Dateien verschlüsselt speichern und entschlüsselt wieder laden

Thau

Mitglied
Hi,
ich wollte folgendes in mein VB Programm einbauen:
Wenn ich den Inhalt aus einer Listbox auslese, soll er verschlüsselt werden und danach abgespeichert werden.
Dann möchte ich aber auch wieder den verschlüsselten Inhalt der Datei laden können und wieder in der Listbox ausgeben können.

Speichern tu ich bisher so:
PHP:
Private Sub save_Click()
    Dim n As Long
    Dim iDatei As Integer
    Dim strDatei As String

    strDatei = "Inhalt_" & Format$(Now, "dd-mm-yy_-_hh-mm-ss") & _
    ".txt"
    
    iDatei = FreeFile

    Open strDatei For Output As iDatei
    For n = 0 To lstText.ListCount - 1
        Write #iDatei, lstText.List(n)
    Next n
    Close iDatei
    MsgBox "Inhalt.", vbOKOnly + vbInformation
End Sub

Ich hab es bisher so gemacht, weil ich noch nicht wirklich verstanden hab, wie ich diese Öffnen und Speichern Dialoge aufrufen kann.

Vielleicht kann mir wer helfen.

Thau
 
Die Öffnen- und Speichern-Dialoge dienen eigentlich nur dazu, einen Dateinamen zu ermitteln, der User kann so einfach per Mausklick den gewünschten Namen wählen. Mit dem eigentlichen Speichern deiner Daten hat der Dialog aber nichts zu tun, das geht so wie du gecodet hast.

Eine kleine Anmerkung noch: Verwende statt Write besser Print, da gibts die Anführungszeichen in der Datei nicht:
Visual Basic:
Print #iDatei, lstText.List(n)


Der Doc!
 
danke, das hab ich gleich mal geändert. Die Anführungszeichen hatten mich eh schon gestört.

Wie kann ich es denn jetzt machen das er den Inhalt der Listbox verschlüsselt abspeichert.

Hier hab ich schon etwas gefunden wie man Dinge verschlüsselt.
http://www.vbarchiv.net/archiv/tipp_564.html
http://www.vb-fun.de/cgi-bin/loadframe.pl?ID=vb/tipps/tip0108.shtml
Nur weiß ich jetzt nicht, wie ich das jetzt auf mein Programm anwende. Also, dass wenn ich speicher der Listbox Inhalt verschlüsselt wird und in der Textdatei gespeichert wird und später wird geladen werden kann, sodass der Inhalt wieder richtig angezeigt wird.
 
Zuletzt bearbeitet:
Danke. Nur weiß ich nicht, wie ich das jetzt mit der Verschlüsselung, auf die For-Schleife anwende. Kannst du mir da vielleicht den Code für geben? Icj bekomm das leider nicht so hin.
 
So, mein einziger freier Tag in den nächsten 2 Wochen (wobei frei dehnbar ist, hatte Nachtdienst), hab dir mal kurz was geschrieben. Im Anhang ist eine ZIP-Datei in der sich der reine Quelltext (keine EXE) sowie eine Textdatei mit Erklärungen befindet.


Der Doc!
 

Anhänge

  • crypt.zip
    2,2 KB · Aufrufe: 65
Danke schön.
Nur irgendwie will das nicht so wirklich wie ich es wollte. :(
Ich hab dein Script benutzt und Laden wollte ich so:
Code:
Private Sub save_Click()
    Dim n As Long
    Dim FF%

    CommonDialog1.FileName = ""
    CommonDialog1.Filter = "Inhalt (*.txt)|*.txt|"
    CommonDialog1.ShowSave
    If CommonDialog1.FileName <> "" Then
    
    FF = FreeFile

    Open CommonDialog1.FileName For Output As FF
    For n = 0 To lstText.ListCount - 1
        lstText.List(n) = Crypt(lstText.List(n), sCryptKey)
        Print #FF, lstText.List(n)
       lstText.List(n) = Crypt(lstText.List(n), sCryptKey) 'Damit Text wieder entschlüsselt dargestellt wird
    Next n
    Close FF
    MsgBox "Inhalt", vbOKOnly + vbInformation
    End If

End Sub

Und so hier wollte ich laden:
Code:
Private Sub Command1_Click()
Dim FF%
Dim Temp$

FF = FreeFile
 CommonDialog1.FileName = ""
 CommonDialog1.Filter = "Inhalt (*.txt)|*.txt|"
 CommonDialog1.ShowOpen
  If CommonDialog1.FileName <> "" Then
    lstText.Clear
    
    Open CommonDialog1.FileName For Input As FF

    Do While EOF(FF) = False
    Line Input #FF, Temp
    lstText.AddItem Temp
   
   Loop
   
    For n = 0 To lstText.ListCount - 1
  'Verschlüssle das aktuelle Element und ersetze es durch das verschlüsselte
    lstText.List(n) = Crypt(lstText.List(n), sCryptKey)
    Next n
 End If
 
End Sub

BeimSpeichern fehlt jetzt entweder ein Teil oder beim Laden läd er nur ein Bruchstück der ersten Zeile und danach nix mehr...
 
Sry wegen Dp.

Also, das es nur einen Teil verschlüsselt, liegt anscheinend an dem Passwort. Wenn das Passwort manchmal zu " kompliziert" ist, streicht er einfach die letzten Buchstaben. Manche Wörter werden auch einfach so gekürzt.Sollte ich vielleicht eine einfachere verschlüsselung ohne passwort nehmen?
 
Zurück