Почему пользователь может установить новый пароль без необходимости вводить старый пароль правильно с моим кодом пакета?
Я недавно написал программу блокировки папок.
Моя единственная проблема в том, что когда мне нужно сменить пароль, например, Я иду в разделnewpass
Программа, похоже, не сравнивает старый пароль с новым, а просто использует любой ввод данных, который отрицает цель иметь пароль, потому что каждый может просто изменить его, а затем разблокировать папку с ним.
Может кто-нибудь перепроверить мой код и сказать мне, почему он это делает.
@echo off
title Folder Locker by KBKOZLEV
:SETPASS
set/p password= <password.txt
set/p tipp= <tipp.txt
attrib +h +s "password.txt"
attrib +h +s "tipp.txt"
:START
if exist "Locked" goto OPEN
if exist "Unlocked" goto LOCK
if not exist "Unlocked" goto MDLOCKER
:LOCK
ren Unlocked "Locked"
attrib +h +s "Locked"
echo.
echo Folder locked
CHOICE /C X /T 1 /D X > nul
exit
:MDLOCKER
md Unlocked
echo( 1234 > password.txt
)
echo( 1234 > tipp.txt
)
attrib +h +s "password.txt"
attrib +h +s "tipp.txt"
cls
echo.
echo Private folder created successfully
CHOICE /C X /T 1 /D X > nul
goto End
:OPEN
cls
echo.
echo Password Tip:%tipp%
echo.
echo Enter password to unlock folder or
echo Enter "new" to set a new password.
set/p pass=">"
if %pass%==new goto newpass
if %pass%==%password% (
attrib -h -s "Locked"
ren Locked "Unlocked"
echo Folder unlocked successfully
goto End
)
goto FAIL
:FAIL
cls
echo.
echo Invalid password,please try again.
CHOICE /C X /T 1 /D X > nul
cls
goto OPEN
:NEWPASS
cls
echo.
echo Enter old password.
set/p oldpass=">"
if %oldpass%==%password% {
attrib -h -s "password.txt"
attrib -h -s "tipp.txt"
cls
echo.
echo Enter new password.
set/p newpass= ">"
echo( %newpass% > password.txt
)
pause
cls
echo.
echo Enter new tipp
set/p passtipp=">"
echo( %passtipp% > tipp.txt
)
goto setpass
}
goto fail
:END