Boucle if

AirozKing Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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