Boucle if

Fermé
AirozKing Messages postés 5 Date d'inscription samedi 17 octobre 2020 Statut Membre Dernière intervention 14 novembre 2020 - Modifié le 17 oct. 2020 à 21:40
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 - 17 oct. 2020 à 22:58
Bonjour j'ai fait un programme en batch qui permet de créer un dossier et de le verrouillez en mettant un mot de passe dessus et on peut n'y accéder que si le mot de passe est juste mais j'ai deux problème

1:
C'est que on a qu'a cliqué sur modifier sur le fichier bat et on peut voir le mot de passe dans le code et j'aimerais qu'il ne soit pas visible

2:
J'aimerais bien faire une boucle if qui dès que une personne se trompe 5 fois de mot de passe surprime l'intégrité des dossiers de ma clé USB car ça fait depuis 2 jours que je galère et j'y arrive pas
cls 
@ECHO OFF
title Dossier Privé
if EXIST "File locked.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST Private goto MDLOCKER
:CONFIRM
echo Êtes vous sûr de vouloir bloquer les fichiers Y=Oui N=Non(Y/N)
set/p "cho=>"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Choix invalide.
goto CONFIRM
:LOCK
ren Private "File locked.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "File locked.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Dossier sécurisé
goto End
:UNLOCK
echo Entrer le mot de passe pour déverrouillé
set/p "pass=>"
if NOT %pass%== password goto FAIL
attrib -h -s "File locked.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "File locked.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Private
echo Dossier déverrouillé GG
goto End
:FAIL
echo Mot de passe incorrect
goto end
:MDLOCKER
md Private
echo Private a bien été créé
goto End
:End

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
17 oct. 2020 à 22:01
Bonjour,

Même si tu "cryptais" le password, rien n'empêcherait un utilisateur d'éditer ton batch et de ne conserver que la ligne qui permet de retirer la "protection".

Si tu veux réellement protéger ta clé, tu ferais mieux de te tourner vers des logiciels existant
par exemple : https://www.commentcamarche.net/faq/32142-proteger-une-cle-usb-avec-un-mot-de-passe

Sinon, si tu veux coder quelque chose toi même, il faudrait, je pense, te tourner vers des langages plus évolués et compilés ( histoire qu'on ne puisse pas les éditer avec un simple bloc note ).
Mais là encore, juste modifier l'attribe des fichiers n'est pas ce qu'on peut réellement appeller "protéger" ....
Il faudrait te pencher, à minimum, sur le hashage des fichiers


1
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
Modifié le 17 oct. 2020 à 23:00
Bonjour,

Comme le dit jordane45 ce n'est pas terrible comme solution pour sécuriser tes données.

Voilà ma contribution au script que tu as trouvé sur le net :

@ECHO OFF
title Dossier Confidentiel
chcp 28591 >nul
setlocal enableextensions disabledelayedexpansion

set locked=File locked.{21EC2020-3AEA-1069-A2DD-08002B30309D}
set tentative=0

if EXIST "%locked%" (goto :UNLOCK)
if NOT EXIST Private (md Private)

:CONFIRM
cls & set "cho="
echo. & echo Êtes vous sûr de vouloir bloquer les fichiers Y=Oui N=Non (Y/N)
set /p "cho=>>> "

if not defined cho (goto :CONFIRM)
if /i "%cho%"=="Y" (goto :LOCK)
if /i "%cho%"=="N" (exit)

echo. & echo Choix invalide !!!
echo. & pause
goto :CONFIRM

:LOCK
ren Private "%locked%"
attrib +h +s "%locked%"
echo. & echo ^>^>^> Dossier sécurisé !
echo. & pause
exit

:UNLOCK
set "pass="
if %tentative% GEQ 5 (exit)
echo. & echo Entrez le mot de passe pour déverrouiller
set /p "pass=>>> "

if NOT "%pass%"=="password" (goto :FAIL)
attrib -h -s "%locked%"
ren "%locked%" Private
echo. & echo Dossier déverrouillé GG
echo. & pause
exit

:FAIL
set /a tentative+=1
echo. & echo Mot de passe incorrect !
goto :UNLOCK


J'ai ajouté comme tu l'as demandé un compteur qui fait quitter le programme au bout de 5 mots de passe erronés. Il ne te reste qu'à le modifier pour supprimer tous les fichiers de ta clé USB.


1