Hilfe bei Verschlüsselungsprogramm !!!
Hallo erstmal ;)
ich bin 14, neu hier im forum und hoffe das ihr mir schnell helfen könnt:
ich befasse mich seit einiger zeit mit cmd und habe angefangen mit einer batch datei ein wortverschlüsselungsprogramm zu entwickeln
ich möchte dass man die möglichkeit hat ein passwort auszuwählen das man braucht um dies zu entschlüsseln (durch einfache division) und das man danach das wort eingibt nur leider steht bei mir immer fehlender operand; was ja eigendlich kein problem ist aber es nervt. dennoch habe ich ein noch größeres problehm der code der entsteht wenn man das wort verschlüsselt ist nach dem ersten mal falsch ich weis nicht warum... ich bitte um schnelle hilfe und hier ein ausschnitt:
@echo off &setlocal
for %%a in (
"a=78"
"b=45"
"c=49"
"d=87"
"e=14"
"f=54"
"g=85"
"h=12"
"i=49"
"j=22"
"k=33"
"l=44"
"m=66"
"n=77"
"o=11"
"p=88"
"q=91"
"r=92"
"s=93"
"t=94"
"u=95"
"v=96"
"w=97"
"x=98"
"y=99"
"z=90"
"punkt=.%
) do set %%a
:eingabe
echo setze ein passwort und merke es dir gut (zahlencode)
set/p pas=
echo gib ein wort ein (hoechstens 13 buchstaben + benutze umlaute
echo + wenn du fertig bist gebe 123321 ein)
set/p str=
if %str% ==123321 goto fertig
set str=%str%
set xa=%str:~0,1%*%pas%
set/a xxa=%xa%
set xb=%str:~1,1%*%pas%
set/a xxb=%xb%
set xc=%str:~2,1%*%pas%
set/a xxc=%xc%
set xd=%str:~3,1%*%pas%
set/a xxd=%xd%
set xe=%str:~4,1%*%pas%
set/a xxe=%xe%
set xf=%str:~5,1%*%pas%
set/a xxf=%xf%
set xg=%str:~6,1%*%pas%
set/a xxg=%xg%
set xh=%str:~7,1%*%pas%
set/a xxh=%xh%
set xi=%str:~8,1%*%pas%
set/a xxi=%xi%
set xj=%str:~9,1%*%pas%
set/a xxj=%xj%
set xk=%str:~10,1%*%pas%
set/a xxk=%xk%
set xl=%str:~11,1%*%pas%
set/a xxl=%xl%
set xm=%str:~12,1%*%pas%
set/a xxm=%xm%
echo dein verschluesseltes wort lautet:
echo %xxa%%xxb%%xxc%%xxd%%xxe%%xxf%%xxg%%xxh%%xxi%%xxj%%xxk%%xxl%%xxm%%punkt%
goto eingabe
:fertig
echo moechtest du nun beenden (1) ?
set/p fertig=
if %fertig%==1 exit
goto eingabe
ich danke schonmal im vorraus
ich bin 14, neu hier im forum und hoffe das ihr mir schnell helfen könnt:
ich befasse mich seit einiger zeit mit cmd und habe angefangen mit einer batch datei ein wortverschlüsselungsprogramm zu entwickeln
ich möchte dass man die möglichkeit hat ein passwort auszuwählen das man braucht um dies zu entschlüsseln (durch einfache division) und das man danach das wort eingibt nur leider steht bei mir immer fehlender operand; was ja eigendlich kein problem ist aber es nervt. dennoch habe ich ein noch größeres problehm der code der entsteht wenn man das wort verschlüsselt ist nach dem ersten mal falsch ich weis nicht warum... ich bitte um schnelle hilfe und hier ein ausschnitt:
@echo off &setlocal
for %%a in (
"a=78"
"b=45"
"c=49"
"d=87"
"e=14"
"f=54"
"g=85"
"h=12"
"i=49"
"j=22"
"k=33"
"l=44"
"m=66"
"n=77"
"o=11"
"p=88"
"q=91"
"r=92"
"s=93"
"t=94"
"u=95"
"v=96"
"w=97"
"x=98"
"y=99"
"z=90"
"punkt=.%
) do set %%a
:eingabe
echo setze ein passwort und merke es dir gut (zahlencode)
set/p pas=
echo gib ein wort ein (hoechstens 13 buchstaben + benutze umlaute
echo + wenn du fertig bist gebe 123321 ein)
set/p str=
if %str% ==123321 goto fertig
set str=%str%
set xa=%str:~0,1%*%pas%
set/a xxa=%xa%
set xb=%str:~1,1%*%pas%
set/a xxb=%xb%
set xc=%str:~2,1%*%pas%
set/a xxc=%xc%
set xd=%str:~3,1%*%pas%
set/a xxd=%xd%
set xe=%str:~4,1%*%pas%
set/a xxe=%xe%
set xf=%str:~5,1%*%pas%
set/a xxf=%xf%
set xg=%str:~6,1%*%pas%
set/a xxg=%xg%
set xh=%str:~7,1%*%pas%
set/a xxh=%xh%
set xi=%str:~8,1%*%pas%
set/a xxi=%xi%
set xj=%str:~9,1%*%pas%
set/a xxj=%xj%
set xk=%str:~10,1%*%pas%
set/a xxk=%xk%
set xl=%str:~11,1%*%pas%
set/a xxl=%xl%
set xm=%str:~12,1%*%pas%
set/a xxm=%xm%
echo dein verschluesseltes wort lautet:
echo %xxa%%xxb%%xxc%%xxd%%xxe%%xxf%%xxg%%xxh%%xxi%%xxj%%xxk%%xxl%%xxm%%punkt%
goto eingabe
:fertig
echo moechtest du nun beenden (1) ?
set/p fertig=
if %fertig%==1 exit
goto eingabe
ich danke schonmal im vorraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 216790
Url: https://administrator.de/forum/hilfe-bei-verschluesselungsprogramm-216790.html
Ausgedruckt am: 09.04.2025 um 09:04 Uhr
5 Kommentare
Neuester Kommentar
Hi,
der Operand ist missing wenn das Wort
Der Code ist falsch, wenn
Teste es so:
Für einen 14jährigen schreibst du cleveren Code 
lg.
der Operand ist missing wenn das Wort
str
weniger als 13 Buchstaben hat.Der Code ist falsch, wenn
str
weniger Buchstaben hat als das vorhergehende.Teste es so:
echo off &setlocal
for %%a in (
"a=78"
"b=45"
"c=49"
"d=87"
"e=14"
"f=54"
"g=85"
"h=12"
"i=49"
"j=22"
"k=33"
"l=44"
"m=66"
"n=77"
"o=11"
"p=88"
"q=91"
"r=92"
"s=93"
"t=94"
"u=95"
"v=96"
"w=97"
"x=98"
"y=99"
"z=90"
"punkt=."
) do set %%a
:eingabe
echo setze ein passwort und merke es dir gut (zahlencode)
set/p "pas= "
echo gib ein wort ein (hoechstens 13 buchstaben + benutze umlaute
echo + wenn du fertig bist gebe 123321 ein)
set/p "str= "
if %str%==123321 goto fertig
set xa=%str:~0,1%*%pas%
set/a xxa=%xa% 2>nul
set xb=%str:~1,1%*%pas%
set/a xxb=%xb% 2>nul
set xc=%str:~2,1%*%pas%
set/a xxc=%xc% 2>nul
set xd=%str:~3,1%*%pas%
set/a xxd=%xd% 2>nul
set xe=%str:~4,1%*%pas%
set/a xxe=%xe% 2>nul
set xf=%str:~5,1%*%pas%
set/a xxf=%xf% 2>nul
set xg=%str:~6,1%*%pas%
set/a xxg=%xg% 2>nul
set xh=%str:~7,1%*%pas%
set/a xxh=%xh% 2>nul
set xi=%str:~8,1%*%pas%
set/a xxi=%xi% 2>nul
set xj=%str:~9,1%*%pas%
set/a xxj=%xj% 2>nul
set xk=%str:~10,1%*%pas%
set/a xxk=%xk% 2>nul
set xl=%str:~11,1%*%pas%
set/a xxl=%xl% 2>nul
set xm=%str:~12,1%*%pas%
set/a xxm=%xm% 2>nul
echo dein verschluesseltes wort lautet:
echo %xxa%%xxb%%xxc%%xxd%%xxe%%xxf%%xxg%%xxh%%xxi%%xxj%%xxk%%xxl%%xxm%%punkt%
for /f "delims==" %%a in ('set xx') do set "%%a="
goto eingabe
:fertig
echo moechtest du nun beenden (1) ?
set/p "fertig= "
if %fertig%==1 exit
goto eingabe
lg.
moin,
@dog nun lass ihn doch mal die 13 Stellen umschreiben
@moNkey Lektion Nummer eins: pack den Code bitte in Code Tags ein
<code>Deine Code
Wenn Du die Variable xa nicht benötigst nimm Doch gleich in die Berechnung die Variablen pur ohne Prozente.
Wenn %str:~5,1% leer ist gibt es keine Operanden.
Set /p gibt ein Errorlevel und gibt auch eine Ausgabe:
ein Exit ohne /b schliesst auch die cmd.
Das wars vorerst.
Gruß Phil
@dog nun lass ihn doch mal die 13 Stellen umschreiben
@moNkey Lektion Nummer eins: pack den Code bitte in Code Tags ein
<code>Deine Code
Wenn Du die Variable xa nicht benötigst nimm Doch gleich in die Berechnung die Variablen pur ohne Prozente.
Wenn %str:~5,1% leer ist gibt es keine Operanden.
Set /p gibt ein Errorlevel und gibt auch eine Ausgabe:
set /p "str=setze ein passwort und merke es dir gut (zahlencode)" || exit /b
:...
set /p "Input=Mit nur Enter Beenden oder mehr eingeben zum Weitermachen." && goto :eingabe ||exit /b
Das wars vorerst.
Gruß Phil
moin,
ich hab da eine Kleine Änderung eingebaut. Ziffern, Kleinbuchstaben, Großbuchstaben sowie Satz- und SonderZeichen werden verschlüsselt.
Die Großbuchstaben müssen noch vervollständigt werden.
Die Länge der zu Verschlüsselnden Zeichen ist nahezu egal.
Gruß Phil
ich hab da eine Kleine Änderung eingebaut. Ziffern, Kleinbuchstaben, Großbuchstaben sowie Satz- und SonderZeichen werden verschlüsselt.
Die Großbuchstaben müssen noch vervollständigt werden.
Die Länge der zu Verschlüsselnden Zeichen ist nahezu egal.
@echo off
setlocal
rem Chiffrierung Teil 1 mit Ziffern; kleinbuchstaben, GROSSBUCHSTABEN [muss noch komplettiert werden wie Sonderzeichen], Satz- und Sonderzeichen
:Chiffre1
set Chiffre=.^
9289285465463713710640^
a78a^
b45b^
c48c^
d87d^
e14e^
f54f^
g85g^
h12h^
i49i^
j22j^
k33k^
l44l^
m66m^
n77n^
o11o^
p88p^
q91q^
r92r^
s93s^
t94t^
u95u^
v96v^
w97w^
x98x^
y99y^
z90z^
grossbuchstaben^
A50A^
B06B^
C53C^
D39D^
Z35Z^
satzzeichen^
72 ^
.52.^
,42,^
=82=^
!57!^
;75;^
?76?^
-27-^
_68_^
:62:^
+73+^
*38*^
sonderzeichen^
%%63%%^
^^64^^^
&52^&^
>58^>^
<74^<^
^"65^"^
^'26^'^
#46#^
umlaute^
á36ász^
š74šUE^
Ž32ŽAe^
™31™Oe^
59ue^
„43„ae^
”69”oe^
@70@^
:wort
set /p "Wort=Gib das zu Verschluesselnde Wort oder Satz ein: " ||goto :Wort
:key
set /p "Key=Gib den ZahlenSchluessel zum Codieren ein: " ||goto :key
set /a T/=key ||goto :key
set /a T/=key-2147483647 ||goto :key
rem Chiffrierung Teil 2 + Multiplikation
goto :Chiffre2 Wegen der Unicode Nutzung werden die Umlaute Verkrüppelt, daher ist test1 nicht mit Umlauten nutzbar.
:test1
set "Line="
for /f eol^=^
^ delims^= %%@ in ('cmd /u /von /c "echo !wort!"^|find /v ""') do for /f %%A in (' @for /f tokens^^^=2delims^^^=^^^%%@ %%a in ^("%Chiffre%.^"^) do @set /a "key*=(1%%a-100)"') do call set "Line=%%Line%%%%A"
echo %line%
echo(
:test1 ende
:Chiffre2
rem da die Umlaute Durch die UnicoDierungund verlustig werden hier Teil 2 richtig:
set "Line="
for /f %%i in ('cmd /u /von /c "echo !wort!"^|find /v ""^|findstr .^|find /v /c ""') do (echo %%i Zeichen
for /l %%. in (0 1 %%i) do setlocal enabledelayedexpansion &for /f eol^=^
^ delims^= %%@ in ("!wort:~%%.,1!") do endlocal &for /f %%A in (' @for /f tokens^^^=2delims^^^=^^^%%@ %%a in ^("%Chiffre%.^"^) do @set /a "key*=(1%%a-100)"') do call set "Line=%%Line%%%%A" &echo Zeichen: %%@ %%A
)
if !os! equ %os% endlocal
echo(
echo %line%
pause
exit /b
Gruß Phil