BATch Zeichen ersetzen
Greez Mitteinander
Ich weiss das es schon Beiträge über änliches giebt, durch die ich schon sehr weit gekommen bin. Nun stehe ich jedoch for einem Rätsel:
Ich habe mir 2 BATchs geschrieben, die erste wechselt die Buchstaben einer Variablen eingabe in zeichen um, damit sie nicht mehr gelesen werden können, und speichert die Zeichenfolge in einer .txt. Das Funktioniert soweit auch.
Skrypt 1:
@echo off
set MyLW=%CD:~0,3%
Set /p PW2d=<%MyLW%5\data\PW\aenderung.txt
set var=%PW2d%
set var=%var:a=+%
set var=%var:b= (% (ohne lerschlag)
set var=%var:c=?%
set var=%var:d=´%
set var=%var:e= )% (ohne lerschlag)
set var=%var:f=$%
set var=%var:g=£%
set var=%var:h=/%
set var=%var:i=#%
set var=%var:j==%
set var=%var:k=0%
set var=%var:l=*%
set var=%var:m="%
set var=%var:n=1%
set var=%var:o='%
set var=%var:p=-%
set var=%var:q=_%
set var=%var:r=~%
set var=%var:s=!%
set var=%var:t=]%
set var=%var:u=}%
set var=%var:v={%
set var=%var:w=[%
set var=%var:x=;%
set var=%var:y=:%
set var=%var:z=,%
%var%
echo %var% > %MyLW%5\data\PW\aenderung.txt
exit
Die 2te sollte dann alles wieder auflösen, also in den Normalzustand schreiben, tut sie aber nicht.
Ich habe keine ahnung warum aber das dos-fenster blizt nur kurz auf, aber macht nichts.
Könnte es daran liegen dass BATch keine Zeichen in ziffern umwandeln kann, oder wo steckt hier mein Fehler?
Skript 2:
@echo off
set MyLW=%CD:~0,3%
Set /p PW2d=<%MyLW%5\data\PW\aenderung.txt
set var=%PW2d%
set var=%var:+=a%
set var=%var: (=b% (ohne lerschlag)
set var=%var:?=c%
set var=%var:´=d%
set var=%var: )=e% (ohne lerschlag)
set var=%var:$=f%
set var=%var:£=g%
set var=%var:/=h%
set var=%var:#=i%
set var=%var:==j%
set var=%var:0=k%
set var=%var:*=l%
set var=%var:"=m%
set var=%var:1=n%
set var=%var:'=o%
set var=%var:-=p%
set var=%var:_=q%
set var=%var:~=r%
set var=%var:!=s%
set var=%var:]=t%
set var=%var:}=u%
set var=%var:{=v%
set var=%var:[=w%
set var=%var:;=x%
set var=%var::=y%
set var=%var:,=z%
%var%
echo %var% > %MyLW%5\data\PW\aenderung.txt
exit
vielen Dank schon jezt.
anok
PS: arbeite mit win vista
Ich weiss das es schon Beiträge über änliches giebt, durch die ich schon sehr weit gekommen bin. Nun stehe ich jedoch for einem Rätsel:
Ich habe mir 2 BATchs geschrieben, die erste wechselt die Buchstaben einer Variablen eingabe in zeichen um, damit sie nicht mehr gelesen werden können, und speichert die Zeichenfolge in einer .txt. Das Funktioniert soweit auch.
Skrypt 1:
@echo off
set MyLW=%CD:~0,3%
Set /p PW2d=<%MyLW%5\data\PW\aenderung.txt
set var=%PW2d%
set var=%var:a=+%
set var=%var:b= (% (ohne lerschlag)
set var=%var:c=?%
set var=%var:d=´%
set var=%var:e= )% (ohne lerschlag)
set var=%var:f=$%
set var=%var:g=£%
set var=%var:h=/%
set var=%var:i=#%
set var=%var:j==%
set var=%var:k=0%
set var=%var:l=*%
set var=%var:m="%
set var=%var:n=1%
set var=%var:o='%
set var=%var:p=-%
set var=%var:q=_%
set var=%var:r=~%
set var=%var:s=!%
set var=%var:t=]%
set var=%var:u=}%
set var=%var:v={%
set var=%var:w=[%
set var=%var:x=;%
set var=%var:y=:%
set var=%var:z=,%
%var%
echo %var% > %MyLW%5\data\PW\aenderung.txt
exit
Die 2te sollte dann alles wieder auflösen, also in den Normalzustand schreiben, tut sie aber nicht.
Ich habe keine ahnung warum aber das dos-fenster blizt nur kurz auf, aber macht nichts.
Könnte es daran liegen dass BATch keine Zeichen in ziffern umwandeln kann, oder wo steckt hier mein Fehler?
Skript 2:
@echo off
set MyLW=%CD:~0,3%
Set /p PW2d=<%MyLW%5\data\PW\aenderung.txt
set var=%PW2d%
set var=%var:+=a%
set var=%var: (=b% (ohne lerschlag)
set var=%var:?=c%
set var=%var:´=d%
set var=%var: )=e% (ohne lerschlag)
set var=%var:$=f%
set var=%var:£=g%
set var=%var:/=h%
set var=%var:#=i%
set var=%var:==j%
set var=%var:0=k%
set var=%var:*=l%
set var=%var:"=m%
set var=%var:1=n%
set var=%var:'=o%
set var=%var:-=p%
set var=%var:_=q%
set var=%var:~=r%
set var=%var:!=s%
set var=%var:]=t%
set var=%var:}=u%
set var=%var:{=v%
set var=%var:[=w%
set var=%var:;=x%
set var=%var::=y%
set var=%var:,=z%
%var%
echo %var% > %MyLW%5\data\PW\aenderung.txt
exit
vielen Dank schon jezt.
anok
PS: arbeite mit win vista
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 110233
Url: https://administrator.de/contentid/110233
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
4 Kommentare
Neuester Kommentar
Moin anokkona,
willkommen im Forum.
Ich vermute, dass die Batch-Zeichen-in-Variable-ersetzen-Syntax dann danebengreift, wenn Zeichen ersetzt werden sollen, die selbst spezielle Bedeutung im CMD-Syntaxumfang haben. Beispiele sind "(", ")", "?" oder "=".
Ein Konstrukt wie..
Vorschlag:
Da Dein Passwort-"Verschlüsselungs"algorithmus -wenn wir mal die Schnörkel und Nebelkerzen weglassen- besteht aus einer normalen 1:1-Zeichenersetzung. Also "Mach mir ein X für ein U vor" et vice versa.
Nicht mehr, nicht weniger. So sicher wie meine Rente.
Also verlierst du nichts, wenn Du nur noch Buchstaben, Ziffern und Sonderzeichen ohne "Spezialbedeutung im Batch" in Deinem Passwort-Zeichenvorrat zulässt und genau diese Zeichen auch in deinem Encrypt-Zeichenvorrat zuordnest.
Lass auf beiden Seiten die oben angeführten Klammern und Frage-/Ausrufe-/Gleichheits-Kleiner/Größer-Zeichen weg.
Das "verschlüsselte" Passwort ist immer noch so komplex, dass es mehr als Minuten Zeit kostet, es zu "erraten".
Und viel mehr kannst du ohnehin nicht erhoffen bei einer 1:1-Vorwärts/Rückwärtsverschlüsselung.
Grüße
Biber
willkommen im Forum.
Ich vermute, dass die Batch-Zeichen-in-Variable-ersetzen-Syntax dann danebengreift, wenn Zeichen ersetzt werden sollen, die selbst spezielle Bedeutung im CMD-Syntaxumfang haben. Beispiele sind "(", ")", "?" oder "=".
Ein Konstrukt wie..
set var=%var:==j%
...würde selbst mich ins Grübeln bringen - wie mag es der armen von Redmonder PraktikantInnen zusammengeschrotenen CMD.exe gehen?Vorschlag:
Da Dein Passwort-"Verschlüsselungs"algorithmus -wenn wir mal die Schnörkel und Nebelkerzen weglassen- besteht aus einer normalen 1:1-Zeichenersetzung. Also "Mach mir ein X für ein U vor" et vice versa.
Nicht mehr, nicht weniger. So sicher wie meine Rente.
Also verlierst du nichts, wenn Du nur noch Buchstaben, Ziffern und Sonderzeichen ohne "Spezialbedeutung im Batch" in Deinem Passwort-Zeichenvorrat zulässt und genau diese Zeichen auch in deinem Encrypt-Zeichenvorrat zuordnest.
Lass auf beiden Seiten die oben angeführten Klammern und Frage-/Ausrufe-/Gleichheits-Kleiner/Größer-Zeichen weg.
Das "verschlüsselte" Passwort ist immer noch so komplex, dass es mehr als Minuten Zeit kostet, es zu "erraten".
Und viel mehr kannst du ohnehin nicht erhoffen bei einer 1:1-Vorwärts/Rückwärtsverschlüsselung.
Grüße
Biber
Moin anokkona,
--> Wenn irgendetwas helfen könnte, dann ein "echter" Verschüsselungsalgorithmus".
Dafür gibt es Leute (und Utilities), die sich damit auseinandergesetzt und da ein paar Tage Aufwand reingesteckt haben.
Versuche nicht, deren Ergebnisse mit einem 5-Minuten-Batch (oder VBScript oder C#-Schnipsel...) nachzuturnen.
Das kann nicht klappen.
Grüße
Biber
...wie sicher ist eine .exe, also wie schnell könnte man das ganze da auslesen
Hat nix mit Exe oder Nicht-Exe zu tun. Wenn der Algorithmus nur pilpul ist (mach mir für jedes X ein U vor et vice versa), dann hilft das nur bei 11jährigen....Batch-"Kompiler"
Genau das Gleiche. Ist nur nervenberuhigend, wenn Du selbst keine Ahnung ist. Gegen 12jährige absolut wirkungslos - vergeudete Zeit.--> Wenn irgendetwas helfen könnte, dann ein "echter" Verschüsselungsalgorithmus".
Dafür gibt es Leute (und Utilities), die sich damit auseinandergesetzt und da ein paar Tage Aufwand reingesteckt haben.
Versuche nicht, deren Ergebnisse mit einem 5-Minuten-Batch (oder VBScript oder C#-Schnipsel...) nachzuturnen.
Das kann nicht klappen.
Grüße
Biber