Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

textdatei per vba verschlüsseln ?

Forumthread: textdatei per vba verschlüsseln ?

textdatei per vba verschlüsseln ?
10.05.2004 16:54:49
dennis
hallo !
ich wollte mal wissen, ob so etwas auch per vba geht:
ich habe eine textdatei, die so ausieht:
andreas;kuhnert;münchen;deutschland
...
...
...
diese datei importiere ich dann in excel, um mit ihr zu arbeiten.
nun würde ich die datei aber gern verschlüsseln.
kann mir jemand vielleicht ein kleines beispiel dafür geben, wie man diese textdatei verschlüsseln kann, so dass jemand, der nur die textdatei ohne den entschlüsselungscode hat, nicht lesen kann ?
wichtig dabei ist, dass das entschlüsseln ganz schnell geht. die textdatei soll ja nur vor "normal-usern" geschützt werden.
danke euch !!!
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: textdatei per vba verschlüsseln ?
ypsilon
hi dennis,
mit vba = gut kann ich dir den brocken ja einfach hinschmeissen:
viel spass ;-)
Function Verschlüsseln(ByVal s As String, key As Long) As String
Dim n As Long, i As Long, ss As String
Dim k1 As Long, k2 As Long, k3 As Long, k4 As Long, t As Long
Static saltvalue As String * 4
For i = 1 To 4
t = 100 * (1 + Asc(Mid(saltvalue, i, 1))) * Rnd() * (Timer + 1)
Mid(saltvalue, i, 1) = Chr(t Mod 256)
Next
s = Mid(saltvalue, 1, 2) & s & Mid(saltvalue, 3, 2)
n = Len(s)
ss = Space(n)
ReDim sn(n) As Long
k1 = 11 + (key Mod 233)
k2 = 7 + (key Mod 239)
k3 = 5 + (key Mod 241)
k4 = 3 + (key Mod 251)
For i = 1 To n
sn(i) = Asc(Mid(s, i, 1))
Next
For i = 2 To n
sn(i) = sn(i) Xor sn(i - 1) Xor ((k1 * sn(i - 1)) Mod 256)
Next
For i = n - 1 To 1 Step -1
sn(i) = sn(i) Xor sn(i + 1) Xor (k2 * sn(i + 1)) Mod 256
Next
For i = 3 To n
sn(i) = sn(i) Xor sn(i - 2) Xor (k3 * sn(i - 1)) Mod 256
Next
For i = n - 2 To 1 Step -1
sn(i) = sn(i) Xor sn(i + 2) Xor (k4 * sn(i + 1)) Mod 256
Next
For i = 1 To n
Mid(ss, i, 1) = Chr(sn(i))
Next
Verschlüsseln = ss
End Function
Function Entschlüsseln(ByVal s As String, key As Long) As String
Dim n As Long, i As Long, ss As String
Dim k1 As Long, k2 As Long, k3 As Long, k4 As Long
n = Len(s)
ss = Space(n)
ReDim sn(n) As Long
k1 = 11 + (key Mod 233)
k2 = 7 + (key Mod 239)
k3 = 5 + (key Mod 241)
k4 = 3 + (key Mod 251)
For i = 1 To n
sn(i) = Asc(Mid(s, i, 1))
Next
For i = 1 To n - 2
sn(i) = sn(i) Xor sn(i + 2) Xor (k4 * sn(i + 1)) Mod 256
Next
For i = n To 3 Step -1
sn(i) = sn(i) Xor sn(i - 2) Xor (k3 * sn(i - 1)) Mod 256
Next
For i = 1 To n - 1
sn(i) = sn(i) Xor sn(i + 1) Xor (k2 * sn(i + 1)) Mod 256
Next
For i = n To 2 Step -1
sn(i) = sn(i) Xor sn(i - 1) Xor (k1 * sn(i - 1)) Mod 256
Next
For i = 1 To n
Mid(ss, i, 1) = Chr(sn(i))
Next i
Entschlüsseln = Mid(ss, 3, Len(ss) - 4)
End Function

Private Sub Encrypt()
Dim Schlüssel As Long
Dim s As String, ss As String
Dim ff As Byte
ff = FreeFile
Schlüssel = 5544 'Codierungsschlüssel
Open "c:\original.txt" For Input As ff
Open "c:\crypt.txt" For Output As ff + 1
Do While Not EOF(ff)
Input #ff, s
ss = Verschlüsseln(s, Schlüssel)
Print #ff + 1, ss
Loop
Close
Kill "c:\original.txt"
End Sub


Private Sub Decrypt()
Dim Schlüssel As Long
Dim s As String, ss As String
Dim ff As Byte
ff = FreeFile
Schlüssel = 5544 'Codierungsschlüssel
Open "c:\original.txt" For Output As ff
Open "c:\crypt.txt" For Input As ff + 1
Do While Not EOF(ff + 1)
Input #ff + 1, s
ss = Entschlüsseln(s, Schlüssel)
Print #ff, ss
Loop
Close
Kill "c:\crypt.txt"
End Sub

cu Micha
Anzeige
vielen dank! da werd ich mich mal durchbeissen!!
10.05.2004 21:03:22
dennis
;
Anzeige
Anzeige

Infobox / Tutorial

Textdatei per VBA verschlüsseln


Schritt-für-Schritt-Anleitung

Um eine Textdatei per VBA zu verschlüsseln, kannst du die folgenden Schritte befolgen:

  1. Öffne Excel und wechsle in den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:

    Function Verschlüsseln(ByVal s As String, key As Long) As String
       Dim n As Long, i As Long, ss As String
       Dim k1 As Long, k2 As Long, k3 As Long, k4 As Long, t As Long
       Static saltvalue As String * 4
       For i = 1 To 4
           t = 100 * (1 + Asc(Mid(saltvalue, i, 1))) * Rnd() * (Timer + 1)
           Mid(saltvalue, i, 1) = Chr(t Mod 256)
       Next
       s = Mid(saltvalue, 1, 2) & s & Mid(saltvalue, 3, 2)
       n = Len(s)
       ss = Space(n)
       ReDim sn(n) As Long
       k1 = 11 + (key Mod 233)
       k2 = 7 + (key Mod 239)
       k3 = 5 + (key Mod 241)
       k4 = 3 + (key Mod 251)
       For i = 1 To n
           sn(i) = Asc(Mid(s, i, 1))
       Next
       ' Verschlüsselung mit XOR
       For i = 2 To n
           sn(i) = sn(i) Xor sn(i - 1) Xor ((k1 * sn(i - 1)) Mod 256)
       Next
       For i = n - 1 To 1 Step -1
           sn(i) = sn(i) Xor sn(i + 1) Xor (k2 * sn(i + 1)) Mod 256
       Next
       ' Weitere XOR-Operationen ...
       For i = 1 To n
           Mid(ss, i, 1) = Chr(sn(i))
       Next
       Verschlüsseln = ss
    End Function
  4. Füge die Entschlüsselungsfunktion hinzu:

    Function Entschlüsseln(ByVal s As String, key As Long) As String
       Dim n As Long, i As Long, ss As String
       Dim k1 As Long, k2 As Long, k3 As Long, k4 As Long
       n = Len(s)
       ss = Space(n)
       ReDim sn(n) As Long
       k1 = 11 + (key Mod 233)
       k2 = 7 + (key Mod 239)
       k3 = 5 + (key Mod 241)
       k4 = 3 + (key Mod 251)
       For i = 1 To n
           sn(i) = Asc(Mid(s, i, 1))
       Next
       ' Entschlüsselung mit XOR
       For i = 1 To n - 2
           sn(i) = sn(i) Xor sn(i + 2) Xor (k4 * sn(i + 1)) Mod 256
       Next
       ' Weitere Entschlüsselungsoperationen ...
       For i = 1 To n
           Mid(ss, i, 1) = Chr(sn(i))
       Next i
       Entschlüsseln = Mid(ss, 3, Len(ss) - 4)
    End Function
  5. Erstelle die Subroutinen für das Verschlüsseln und Entschlüsseln:

    Private Sub Encrypt()
       Dim Schlüssel As Long
       Dim s As String, ss As String
       Dim ff As Byte
       ff = FreeFile
       Schlüssel = 5544 'Codierungsschlüssel
       Open "c:\original.txt" For Input As ff
       Open "c:\crypt.txt" For Output As ff + 1
       Do While Not EOF(ff)
           Input #ff, s
           ss = Verschlüsseln(s, Schlüssel)
           Print #ff + 1, ss
       Loop
       Close
       Kill "c:\original.txt"
    End Sub
    
    Private Sub Decrypt()
       Dim Schlüssel As Long
       Dim s As String, ss As String
       Dim ff As Byte
       ff = FreeFile
       Schlüssel = 5544 'Codierungsschlüssel
       Open "c:\original.txt" For Output As ff
       Open "c:\crypt.txt" For Input As ff + 1
       Do While Not EOF(ff + 1)
           Input #ff + 1, s
           ss = Entschlüsseln(s, Schlüssel)
           Print #ff, ss
       Loop
       Close
       Kill "c:\crypt.txt"
    End Sub
  6. Führe die Encrypt-Subroutine aus, um die Textdatei zu verschlüsseln.


Häufige Fehler und Lösungen

  1. Fehler beim Öffnen der Datei:

    • Stelle sicher, dass der Pfad zur Datei korrekt ist und dass die Datei existiert.
  2. Keine Berechtigung zum Löschen der Datei:

    • Überprüfe die Dateiberechtigungen und stelle sicher, dass die Datei nicht in einem anderen Programm geöffnet ist.
  3. VBA-Fehler bei der Ausführung:

    • Überprüfe, ob alle Funktionen korrekt kopiert wurden und keine Syntaxfehler vorhanden sind.

Alternative Methoden

  • Excel-Funktionen: Für einfache Verschlüsselungen kannst du auch Excel-Funktionen wie VLOOKUP oder INDEX in Kombination mit einer Codierungstabelle verwenden.
  • Drittanbieter-Tools: Es gibt Softwarelösungen, die speziell für das Verschlüsseln von Textdateien entwickelt wurden.

Praktische Beispiele

  1. Verschlüsseln einer Liste von Namen:

    • Erstelle eine Textdatei mit Namen und verwende die obigen VBA-Funktionen, um die Datei zu verschlüsseln.
  2. Entschlüsseln einer Datei:

    • Nutze die Decrypt-Subroutine, um die zuvor verschlüsselte Datei wieder herzustellen.

Tipps für Profis

  • Verwende unterschiedliche Schlüssel: Ändere regelmäßig den Codierungsschlüssel, um die Sicherheit zu erhöhen.
  • Speichere die Schlüssel sicher: Bewahre deine Schlüssel an einem sicheren Ort auf, um die Daten vor unbefugtem Zugriff zu schützen.
  • Implementiere zusätzliche Sicherheitsmaßnahmen: Überlege, weitere Verschlüsselungsmethoden zu kombinieren, um die Daten noch besser zu schützen.

FAQ: Häufige Fragen

1. Wie kann ich eine Textdatei mit VBA verschlüsseln?
Du kannst die oben beschriebenen Funktionen Verschlüsseln und Entschlüsseln verwenden, um eine Textdatei zu schützen.

2. Was ist der Unterschied zwischen Verschlüsseln und Entschlüsseln?
Verschlüsseln bedeutet, Daten in ein unlesbares Format umzuwandeln, während Entschlüsseln den Prozess umkehrt und die ursprünglichen Daten wiederherstellt.

3. Welche Excel-Version benötige ich?
Die beschriebenen VBA-Funktionen sind in den meisten aktuellen Excel-Versionen verfügbar, darunter Excel 2010 und neuer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige