monkeyjuice
Goto Top

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 face-smile

Content-Key: 216790

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

Ausgedruckt am: 29.03.2024 um 10:03 Uhr

Mitglied: dog
dog 12.09.2013 aktualisiert um 21:30:13 Uhr
Goto Top
...mit einer batch datei ein wortverschlüsselungsprogramm zu entwickeln...

e478b37da7b93e0b22e5da0962463f15

Versuchs doch mal mit einer Programmiersprache.
Mitglied: Endoro
Endoro 12.09.2013 aktualisiert um 21:59:26 Uhr
Goto Top
Hi,
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
Für einen 14jährigen schreibst du cleveren Code face-smile
lg.
Mitglied: pieh-ejdsch
pieh-ejdsch 12.09.2013 um 22:07:29 Uhr
Goto Top
moin,
@dog nun lass ihn doch mal die 13 Stellen umschreiben face-wink

@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  
ein Exit ohne /b schliesst auch die cmd.

Das wars vorerst.

Gruß Phil
Mitglied: Lochkartenstanzer
Lochkartenstanzer 13.09.2013 aktualisiert um 14:50:50 Uhr
Goto Top
Moin,

Versuch es mal mit etwas einfachem wie Basic (oder Visualbasic), bevor Du das in cmd versuchst. Ansonsten gibt es noch die Möglichkeit, mit echo jeweils die zwischenergebnisse auszugeben.

5855a399b24d33abda0038e861619663
Mitglied: pieh-ejdsch
pieh-ejdsch 15.09.2013 aktualisiert um 15:53:38 Uhr
Goto Top
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.
@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^
59ue^
„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