1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Batch Passwort

Discussion in 'Programmieren' started by batchmaster, Oct 1, 2017.

Thread Status:
Not open for further replies.
  1. Kann mir eventuell jemand sagen wo hier der Fehler liegt?
    Code:
    :b
    set n=3
    echo.
    echo Noch %n% Versuche
    echo Passwort eingeben:
    set /P passwort=
    if "%passwort%"="########" goto menu
    set /A n=%n%-1
    if "%n%"=0 exit
    cls
    echo Falsche Eingabe
    goto :b
    Danke im Vorraus
    P.S.: Es ist nicht der gesamte Code, aber der eigentliche Problembereich.
     
  2. PerryR

    PerryR Byte

    @batchmaster
    Sei mir nicht böse, aber so ein Programm macht als Batch keinen Sinn:
    1) kann jeder so ein Batch öffnen und das Passwort lesen.
    2) Bei der Eingabe des Passwortes ist dieses sichtbar.
    3) Man kann mit sowas gar nichts schützen: ich kopiere mir den Batchtext, lösche den Passwort-Teil und führe den Rest einfach aus.

    Aber ich zeige dir trotzdem mal die Lösung:

    @echo off

    set n=3
    :b
    echo.
    echo Noch %n% Versuche
    echo Passwort eingeben:
    set /P passwort=
    if "%passwort%"=="########" goto menu
    set /A n=%n%-1
    if %n% LEQ 0 goto ende
    cls
    echo Falsche Eingabe
    goto b

    :menu
    echo Passwort Ok. Zum Menue...
    goto stop

    :ende
    echo Passwort 3mal falsch eingegeben. Abbruch...
    goto stop

    :stop
    rem Nur zum Ausprobieren! Spaeter pause durch exit ersetzen.
    pause
     
  3. VB-Coder

    VB-Coder Megabyte

    Ich war länger nicht online. Aber da mich nachdem ich das gelesen habe Erinnerungen überkamen, hier mal ein Beispiel wie man das ganze noch lösen könnte. Ich habe nämlich vor vielen, vielen Jahren auch mal so angefangen. ;-)

    Du erstellst dir 2 Dateien. create.bat und programm.bat mit folgendem Inhalt

    create.bat
    PHP:
    @echo off
    :beginn
    CLS
    echo Demo-Passwortschutz per Batch by VB-Coder -=pcwelt-forum.de=-
    echo 
    Teil 1 Passwort-Erstellung
    echo.

    REM Wir schreiben unser Passwort in die Variable %pwd%
    set /p pwd=Neues Passwort:

    REM Wir erstellen eine neue Passwortdatei pwd.lst auf Laufwek D:\
    REM und schreiben unser Passwort aus der Variablen %pwdin diese Datei.
    ECHO %
    pwd%>"D:\pwd.lst"

    REM Wir löschen den Bildschirminhalt -
    CLS
    echo.

    REM Wir prüfen ob die Datei erstellt wurde -
    REM Falls nicht geben wir eine Fehlermeldung aus
    REM 
    und springen nach Tastendruck zum Anfang :beginn zurück -
    if 
    exist "D:\pwd.lst" (
    echo 
    Passwortdatei wurde erstellt !
    )else (
    CLS
    echo Fehler ! - Die Passwortdatei wurde nicht erstellt !
    echo.
    pause
    GOTO beginn
    )

    REM Wenn alles geklappt hat beenden wir das Programm durch Tastendruck -
    pause

    programm.bat
    PHP:
    @echo off
    CLS
    echo Demo-Passwortschutz per Batch by VB-Coder -=pcwelt-forum.de=-
    echo 
    Teil 2 Passwortabfrage
    echo.

    :
    beginn
    REM 
    Wir lesen das Passwort aus der Datei aus und schreiben es in die Variable %x%
    set /p x=<"D:\pwd.lst"


    REM Wir sorgen dafür dass das Passwort maximal 3 mal eingegeben werden kann -


    set /a gesamt=4
    set 
    /a versuch=%gesamt%-1
    :schleife
    echo Noch %versuchVersuche
    if %versuchlss 1 (
    goto :
    ende
    )

    REM Wir lassen das Passwort eingeben und prüfen auf Richtigkeit -
    REM Ist es richtig springen wir zum MenueIst es falsch zum Anfang. -
    set /"tmp=Bitte Passwort eingeben: "
    if %x%==%tmp% (
    goto :
    menue
    ) else (
    set /a versuch=%versuch%-1
    goto :schleife
    )
    :
    ende
    cls
    echo Passwort zu oft falsch eingegeben!
    pause
    exit

    :
    menue
    CLS
    echo.
    echo -=[
    BATCH Menue Demo]=- by VB-Coder -=pcwelt-forum.de=-
    echo.
    echo.
    echo 
    Menuepunkt [#1]
    echo Menuepunkt [#2]
    echo Menuepunkt [#3]
    echo Menuepunkt [#4]
    echo Menuepunkt [#5]
    echo.
    set /"mnu=Bitte waehlen Sie einen Menuepunkt aus: "
    CLS
    if %mnu%==goto menue1
    if %mnu%==goto menue2
    if %mnu%==goto menue3
    if %mnu%==goto menue4
    if %mnu%==goto menue5

    :menue1
    CLS
    echo.
    echo -=[
    Menue 1]=-
    echo.
    pause
    exit

    :
    menue2
    CLS
    echo.
    echo -=[
    Menue 2]=-
    echo.
    pause
    exit

    :
    menue3
    CLS
    echo.
    echo -=[
    Menue 3]=-
    echo.
    pause
    exit

    :
    menue4
    CLS
    echo.
    echo -=[
    Menue 4]=-
    echo.
    pause
    exit

    :
    menue5
    CLS
    echo.
    echo -=[
    Menue 5]=-
    echo.
    pause
    exit
    Die Datei create.bat ist dazu gedacht eine Passwortdatei zu erzeugen. Hier musst du nur den Pfad zur Datei nach deinen Bedürfnissen anpassen.
    Die Datei programm.bat beinhaltet das eigentliche "Programm". Diese musst du komplett an deine Bedürfnisse anpassen.

    Nachdem das geschehen ist wandelst du die beiden Batch Dateien in eigenständige Programme also EXE Files um und verschlüsselst diese. Wie das geht zeigt ein sehr alter aber gut beschriebener PC Welt Artikel aus dem Jahre 2001. Diesen findest du hier -klick mich-
    Damit hast du zumindest einen grundlegenden Schutz. Besser als jedes andere gefriemel mit den Batch Dateien. Und zum Schluss nicht vergessen die Original Batch Dateien zu löschen.
     
Thread Status:
Not open for further replies.

Share This Page