Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Cmd - Textverschlüsselung durch eigenes Alphabet

Frage Microsoft

Mitglied: abbrechen

abbrechen (Level 1) - Jetzt verbinden

03.01.2012 um 03:53 Uhr, 3878 Aufrufe, 1 Kommentar

Hi,

ich würde gerne einen Fließtext via cmd verschlüsseln können und stelle mir die Struktur wiefolgt vor:

alphabet.endung
--> Inhalt: a = &%n<
b = )?""§
usw.

Verschlüsselungsdatei.bat
Diese Datei erkennt den Text, verwendet die alphabet.endung und wandelt ihn in einen verschlüsselten Text um.

text.txt
Der zu verschlüsselnde Text

new.txt
der verschlüsselte Text


Nun habe ich grundliegende Probleme bei diesem Projekt.
Zum Einen finde ich keinen Befehl, um den Inhalt einer Datei zu erkennen und zum anderen keinen Befehl um diesen Inhalt auf den Inhalt einer anderen Datei einzusetzen, sprich dass der Text vom Alphabet verschlüsselt wird.
Alternative Sprachen wären bei mir keine Lösung, da ich außer wenigen Websprachen nur in cmd halbwegs bewand bin.
Mitglied: Friemler
03.01.2012 um 12:03 Uhr
Hallo abbrechen,

leider ist die CMD-Batchsprache nur schlecht zum verarbeiten des Inhalts von Textdateien geeignet. Das fängt mit der Zeichencodierung an (CMD arbeitet mit der DOS-Codepage 850, normale Windowsprogramme/-editoren mit der ANSI-Codepage) und hört mit den Schwierigkeiten beim Verarbeiten von Zeichen auf, die zum Sprachumfang von Batchscript gehören (z.B. %,&,<,> usw.).

Deshalb eine VBScript-Lösung von mir:
01.
'Name der Datei mit dem Codierungsalphabet 
02.
strStdAlphabetFile = "Alphabet.txt" 
03.
 
04.
 
05.
'Konstanten für File-I/O 
06.
Const ForReading = 1 
07.
Const ForWriting = 2 
08.
 
09.
 
10.
'Wurden Parameter übergeben? 
11.
If WScript.Arguments.Count > 0 Then 
12.
  'FileSystemObject erzeugen 
13.
  Set objFSO = CreateObject("Scripting.FileSystemObject") 
14.
 
15.
  'Name der zu verschlüsselnden Datei aus dem ersten Element der Parameterliste lesen 
16.
  'und ihren vollständigen Pfad ermitteln 
17.
  strInFile  = objFSO.GetAbsolutePathName(WScript.Arguments(0)) 
18.
 
19.
  'Existiert die Eingabedatei? 
20.
  If objFSO.FileExists(strInFile) Then 
21.
    'Wenn zwei Parameter übergeben wurden, Name der Datei mit dem Codierungsalphabet 
22.
    'aus dem zweiten Element der Parameterliste lesen, sonst auf den Standardwert setzen 
23.
    If WScript.Arguments.Count > 1 Then 
24.
      strAlphabetFile = WScript.Arguments(1) 
25.
    Else 
26.
      strAlphabetFile = strStdAlphabetFile 
27.
    End If 
28.
 
29.
    'Vollständigen Pfad der Alphabetdatei ermitteln 
30.
    strAlphabetFile = objFSO.GetAbsolutePathName(strAlphabetFile) 
31.
 
32.
    'Existiert die Datei mit dem Codierungsalphabet? 
33.
    If objFSO.FileExists(strAlphabetFile) Then 
34.
      'Objekt für reguläre Ausdrücke erzeugen 
35.
      Set objRegExp     = New RegExp 
36.
      'Nur das erste Auftreten des Suchmusters finden 
37.
      objRegExp.Global  = False 
38.
      'Suchmuster setzen 
39.
      objRegExp.Pattern = "^(.{1})=(.{1,})$" 
40.
 
41.
      'Dictionary-Objekt erzeugen 
42.
      Set objDictionary         = CreateObject("Scripting.Dictionary") 
43.
      'Groß-/Kleinschreibung unterscheiden 
44.
      objDictionary.CompareMode = 0 
45.
 
46.
      'Alphabetdatei zum Lesen öffnen 
47.
      Set objAlphabetFile = objFSO.OpenTextFile(strAlphabetFile, ForReading) 
48.
 
49.
      'Alphabetdatei bis zum Ende einlesen 
50.
      While Not objAlphabetFile.AtEndOfStream 
51.
        'Eine Zeile einlesen 
52.
        strLine = objAlphabetFile.ReadLine 
53.
 
54.
        'Die Zeile in ihre Bestandteile zerlegen 
55.
        Set colMatches = objRegExp.Execute(strLine) 
56.
 
57.
        'Schlüssel und Wert in das Dictionary eintragen 
58.
        objDictionary.Add colMatches(0).SubMatches(0), colMatches(0).SubMatches(1) 
59.
      Wend 
60.
 
61.
      'Alphabetdatei schließen 
62.
      objAlphabetFile.Close 
63.
 
64.
      'Objekt erzeugen, das die zu verschlüsselnde Datei referenziert 
65.
      Set objInFile = objFSO.GetFile(strInFile) 
66.
 
67.
      'Aus Pfad und Name der Eingabedatei Pfad und Name der Ausgabedatei erzeugen 
68.
      'Aus "Test.txt" wird "Test_Codiert.txt" 
69.
      strOutFile = objFSO.BuildPath(objFSO.GetParentFolderName(objInFile.Path), objFSO.GetBaseName(objInFile.Name) _ 
70.
                                                                                & "_Codiert." _ 
71.
                                                                                & objFSO.GetExtensionName(objInFile.Name) _ 
72.
73.
 
74.
      'Eingabedatei zum Lesen öffnen 
75.
      Set objInStream  = objInFile.OpenAsTextStream(ForReading) 
76.
 
77.
      'Ausgabedatei zum Schreiben öffnen 
78.
      Set objOutStream = objFSO.OpenTextFile(strOutFile, ForWriting, True) 
79.
 
80.
      'Eingabedatei bis zum Ende einlesen 
81.
      While Not objInStream.AtEndOfStream 
82.
        'Eine Zeile lesen 
83.
        strLine = objInStream.ReadLine 
84.
 
85.
        'Jedes Zeichen der Zeile verarbeiten 
86.
        For I = 1 To Len(strLine) 
87.
          'Ein Zeichen aus der aktuellen Zeile extrahieren 
88.
          strChar = Mid(strLine, I, 1) 
89.
 
90.
          'Existiert für das aktuelle Zeichen eine Codierungsregel? 
91.
          If objDictionary.Exists(strChar) Then 
92.
            'Das codierte Zeichen in die Ausgabedatei schreiben 
93.
            objOutStream.Write objDictionary.Item(strChar) 
94.
          Else 'Keine Codierungsregel gefunden 
95.
            'Das Zeichen uncodiert in die Ausgabedatei schreiben 
96.
            objOutStream.Write strChar & strChar 
97.
          End If 
98.
        Next 
99.
 
100.
        'Zeilenumbruch in die Ausgabedatei schreiben 
101.
        objOutStream.Write vbCrLf 
102.
      Wend 
103.
 
104.
      'Aus- und Eingabedatei schließen 
105.
      objOutStream.Close 
106.
      objInStream.Close 
107.
 
108.
      'Returncode setzen 
109.
      intResult = 0 
110.
    Else 'Datei mit Codierungsalphabet existiert nicht 
111.
      'Fehlermeldung ausgeben 
112.
      WScript.Echo "Alphabetdatei " & strAlphabetFile & " nicht gefunden." & vbCrLf 
113.
 
114.
      'Hilfe ausgeben 
115.
      PrintHelp 
116.
 
117.
      'Returncode setzen 
118.
      intResult = 3 
119.
    End If 
120.
  Else 'Eingabedatei existiert nicht 
121.
    'Fehlermeldung ausgeben 
122.
    WScript.Echo "Eingabedatei " & strInFile & " nicht gefunden." & vbCrLf 
123.
 
124.
    'Hilfe ausgeben 
125.
    PrintHelp 
126.
 
127.
    'Returncode setzen 
128.
    intResult = 2 
129.
  End If 
130.
Else 'Aufruf ohne Parameter 
131.
  'Hilfe ausgeben 
132.
  PrintHelp 
133.
 
134.
  'Returncode setzen 
135.
  intResult = 1 
136.
End If 
137.
 
138.
'Script beenden und Returncode zurückliefern 
139.
WScript.Quit intResult 
140.
 
141.
 
142.
 
143.
'Unterprogramm zur Ausgabe der Hilfe 
144.
Sub PrintHelp 
145.
  WScript.Echo "Aufruf       : " & WScript.ScriptName & " ""Dateipfad"" [""Alphabetdatei""]" 
146.
  WScript.Echo 
147.
  WScript.Echo "Dateipfad    : Pfad der zu verschlüsselnden Datei." 
148.
  WScript.Echo "Alphabetdatei: Pfad zur Datei mit dem Codierungsalphabet." 
149.
  WScript.Echo "               Falls nicht angegeben, wird im aktuellen Verzeichnis" 
150.
  WScript.Echo "               nach der Datei " & strStdAlphabetFile & " gesucht." 
151.
End Sub
Den Code z.B. als Encode.vbs speichern und dann folgendermaßen aufrufen:

cscript /nologo encode.vbs "PfadDerEingabedatei" ["PfadDerAlphabetdatei"]
Der Pfad zur Alphabetdatei ist optional. Wenn nicht angegeben, wird im aktuellen Verzeichnis nach einer Datei namens Alphabet.txt gesucht, die das Codierungsalphabet in der von Dir beschriebenen Form enthalten muss, also z.B.
01.
a=&%n< 
02.
b=)?"§
usw.

Du musst für Groß- und Kleinbuchstaben separate Einträge in der Datei anlegen oder in Zeile 44 die 0 durch eine 1 ersetzen.

Um VBScript zu lernen: Google mal nach script56.chm (englische Version von MS) oder lade Dir von hier die (teilweise) deutsche Version.

Eine gute Übung wäre, den Decoder selbst zu schreiben . Du musst nur einige wenige Änderungen an obigem Code durchführen.

Noch ein Tipp: Falls Du wirklich die Zeichen aus der Eingabedatei durch mehrere Zeichen in der Ausgabedatei codieren willst, nimm für alle Zeichen eine konstante Anzahl Ersetzungszeichen.

Gruß
Friemler
Bitte warten ..
Ähnliche Inhalte
Informationsdienste
Alphabet, der neue Mutterkonzern von Google
Information von FrankInformationsdienste5 Kommentare

Umstrukturierung: In Zukunft wird Google unter dem neuen Mutterkonzern Alphabet geführt. Die neue Holding "Alphabet" wird von den Google-Gründern ...

Netzwerke
Was tun wenn das Alphabet neicht reicht bei Mapping von Netzwerkressource
Frage von TheHawkNetzwerke15 Kommentare

Guten Mittag,, Ich habe hier in der Firma das Problem dass es sehr viele Mitarbeiter gibt die Abteilungsübergreifend arbeiten. ...

Windows Tools
Bootfähige CMD
Frage von M.MarzWindows Tools4 Kommentare

Hallo zusammen, ich würde gerne wissen, ob es ein Tool für Windows gibt um vom USB Stick beim Booten ...

Microsoft
Eingabe in cmd ?
Frage von PeterMoMicrosoft5 Kommentare

Ich habe auf dem Desktop seit gestern dieses stehen: Testmodus Windows 7 Build 7601 Da ich mich in der ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 19 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement15 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...