@ ECHO OFF
& SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
SET CHARS=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
@#/
()=+-,.;:_*'
:_MENU
CLS
ECHO Seguridad en contrase¤a:
IF ^%SECLEVEL_:~0,1
%==1
(SET MAXCHAR=25
&GOTO:_LENGHT
) IF ^%SECLEVEL_:~0,1
%==2
(SET MAXCHAR=51
&GOTO:_LENGHT
) IF ^%SECLEVEL_:~0,1
%==3
(SET MAXCHAR=77
&GOTO:_LENGHT
) IF ^%SECLEVEL_:~0,1
%==0
(EXIT) :_LENGHT
CLS
ECHO Longitud de contrase¤a:
(SET /P PASSWORDLENGTH_=
^> ) FOR /L
%%I IN (1,1,
%PASSWORDLENGTH_%) DO ( CALL :
_ONERANDOMCHAR %MAXCHAR% RNDCHR_
SET RESULT_=
!RESULT_!!RNDCHR_! )
ECHO %RESULT_%|FINDSTR "[0123456789]"
>NUL IF ^%ERRORLEVEL
%==0
SET FOUNDNUMBER=TRUE
ECHO %RESULT_%|FINDSTR "[
@#/
()=+-,.;:_*']"
>NUL IF ^%ERRORLEVEL
%==0
SET FOUNDSPECIAL=TRUE
:_ONERANDOMCHAR
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
SET /A RAND_=
%RANDOM% /
%DIV_% SET RETURN_=
!CHARS:~% style="color: #448888;">RAND_%,1! :_RESULT
CLS
ECHO Contrase¤a generada:
Escrito por mi, con la ayuda del código "Make a randomized password" de Timo Salmi.