butterblume
Goto Top

VBS Textverschluesselung

VB-Script.
Symetrische Verschlüsselung mit Xor.
Eingabe des Ziel- und Quelltextes mit einer Eingabebox.
Eingabe des Schlüssels mit einer Eingabebox.

Hallo Zusammen,
ich muss ein Programm schreiben mit dem ich mit Hilfe Xor einem 8 Bit ZeichensatzDateien einfach Ver- und Entschlüsseln kann.
Ziel- und Quelladresse muss eingegeben werden.
Eingabe des Schlüssel mit einer Eingabebox.

Da komme ich nicht wirklich weiter. Da ist was ich habe, natürlich lauft das nöd. Ist auch nicht fertig.
Kann mir da jemand helfen??

Schon Danke voraus.

Dim Quelldatei, Zieldatei, Schluessel
Dim fso, File, sText, ts
Const ForReading = 1
Const ForWriting = 2
Dim Gelesenes_Zeichen

Quelldatei = InputBox ("Geben sie die Quelldatei ein")  
MsgBox ("Ihre Eingabe: " &Quelldatei)  

Zieldatei = InputBox ("Geben sie die Zieldatei ein")  
MsgBox ("Ihre Eingabe: " &Zieldatei)  

Schluessel = InputBox ("Geben sie den Schluessel ein")  
MsgBox ("Ihre Eingabe: " &QSchluessel)  

Set fso = CreateObject("Scripting.FileSystemObject")  
set File = fso.OpenTextFile("Quelldatei", ForReading, false)  
sText = File.ReadAll
Set fso = nothing

Set fso = CreateObject("Scripting.FileSystemObject")  
Set ts = fso.OpenTextFile("Zieldatei", ForWriting, True)  

Do While ***solange noch nicht alle zeichen eingelesen sind
   ***ein zeichen aus der datei lesen
   Gelesenes_Zeichen := Zeichen Xor schreiben

mit strSchreiben = Chr (CByte ( AscB (strLesen) ) Xor CByte( AscB(strSchluessel) ) )

   Gelesenes_Zeichen in Zieldatei schreiben
Loop

Content-Key: 89281

Url: https://administrator.de/contentid/89281

Printed on: April 19, 2024 at 15:04 o'clock

Member: bastla
bastla Jun 06, 2008 at 09:30:32 (UTC)
Goto Top
Hallo Butterblume!

Anstelle von "Do / While" biete sich ein "For / Next" an, da Du ohnehin einen Zähler (Index) für die einzelnen Zeichen des Textes brauchst. Wenn der Schlüssel mehr als nur ein Zeichen umfasst, wirst Du auch diesen zeichenweise zerlegen müssen - in diesem Zusammenhang jeweils nützliche Funktionen: Len() und Mid() oder LenB() und MidB()

Zum Schreiben des Ergebnisses: Analog zum Einlesen könntest Du zunächst alle einzelnen Zeichen in einem String sammeln (zur Verkettung "&" verwenden) und dann den gesamten String schreiben.

Wenn Du es tasächlich zeichenweise machen willst (sollst), einfach "Write" verwenden.

Versuch es einmal mit diesen Anregungen, und poste bei Problemen einfach den nächsten Zwischenstand Deines Scripts.

Grüße
bastla
Member: Logan000
Logan000 Jun 06, 2008 at 11:10:35 (UTC)
Goto Top
Die Zeile
set File = fso.OpenTextFile("Quelldatei", ForReading, false)   
wird so nicht funktionieren. Du musst die Tütelchen um die Variable Quelldatei weglassen.
So wirds gehen.
set File = fso.OpenTextFile(Quelldatei, ForReading, false) 
Bei Zieldatei analog.
Member: Butterblume
Butterblume Jun 11, 2008 at 12:18:52 (UTC)
Goto Top
@bastla

Hallo bastla
Das funktioniert super. Ich habe len() und mid() gebraucht, und eine For/Next Anweisung.
Habe aber sehr lange gebraucht. Jetzt funktioniert alles super.
Aber ich möchte nun mein Programm perfektionieren. Wenn ich kein Pfad eingebe dann wird der Code weiterausgeführt und am Schluss kommt ein Error.

Wie kann ich den Pfad überprüfen und Runtime abbrechen? Falls kein richtiges Pfad eingegeben wurde, bzw. auf Cancel gedrückt wurde.

@Logan000
Danke, tatsächlich mit " " funktionierts nicht und ohne schon. Danke.
Member: Logan000
Logan000 Jun 11, 2008 at 14:26:39 (UTC)
Goto Top
Hi

Abbruch könnte so aussehen:

Quelldatei = InputBox ("Geben sie die Quelldatei ein")   
If Quelldatei="" Then wscript.quit  
Set fso = CreateObject("Scripting.FileSystemObject")   
If Not fso.FileExists(Quelldatei) Then wscript.quit
MsgBox ("Ihre Eingabe: " &Quelldatei)   

Naja.
Evtl. noch ne Meldung einbauen warum nix mehr passiert.

Viel Erfolg.