Wie erstellen Sie einen Briefpasswortgenerator im Stapel?

26368
mendez

Es fällt mir schwer, herauszufinden, wie man einen Passwortgenerator mit zufälligen Buchstaben erstellt. Zum Beispiel ASWED-ASDWAD-EFEST. Bisher kann ich nur mit dem Code Zufallszahlen erstellen

@echo off  :password  echo %random%-%random%-%random pause goto password 

PS: Mein Betriebssystem ist Windows Vista.

Alle Hilfe wird geschätzt.

7
Ich habe% RANDOM% zu cmd.exe in Windows NT hinzugefügt. Schön zu sehen, dass es immer noch nützlich ist. mosh vor 7 Jahren 0

5 Antworten auf die Frage

9
Paul

Es gibt hier eine Diskussion , die Sie für Ihre Zwecke anpassen können.

@Echo Off Setlocal EnableDelayedExpansion Set _RNDLength=8 Set _Alphanumeric=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 Set _Str=%_Alphanumeric%987654321 :_LenLoop IF NOT "%_Str:~18%"=="" SET _Str=%_Str:~9%& SET /A _Len+=9& GOTO :_LenLoop SET _tmp=%_Str:~9,1% SET /A _Len=_Len+_tmp Set _count=0 SET _RndAlphaNum= :_loop Set /a _count+=1 SET _RND=%Random% Set /A _RND=_RND%%%_Len% SET _RndAlphaNum=!_RndAlphaNum!!_Alphanumeric:~%_RND%,1! If !_count! lss %_RNDLength% goto _loop Echo Random string is !_RndAlphaNum! 

TheOutcaste erklärt das oben:

Ich habe es so geändert, dass Sie die Länge einfach angeben und Zeichen hinzufügen oder entfernen können, ohne einen anderen Teil des Codes ändern zu müssen.

Beispielsweise möchten Sie möglicherweise nicht sowohl 0 als auch O (null und Großbuchstaben O) oder 1 und l (ein und Kleinbuchstabe L) verwenden.

Sie können Satzzeichen mit Ausnahme der folgenden Zeichen verwenden:

! % ^ & < > 

Sie können ^und verwenden %, müssen sie jedoch _Alphanumeric zweimal als ^^ oder in die Variable eingeben %%. Wenn Sie das result ( _RndAlphaNum) später in der Batchdatei verwenden möchten (außer Echo auf dem Bildschirm), ist möglicherweise eine besondere Behandlung erforderlich.

Sie können sogar ein Leerzeichen verwenden, solange es nicht das letzte Zeichen in der Zeichenfolge ist. Wenn es jedoch als letztes Zeichen in der generierten Zeichenfolge endet, wird es nicht verwendet, so dass Sie nur 7 Zeichen haben würden.

Vielen Dank für die Hilfe. Ich bin ein bisschen neu im Batch, also habe ich mich gefragt, ob Sie mir helfen könnten, den Code zu interpretieren, den Sie mir gezeigt haben. Ich möchte es vereinfachen, damit ich sehen kann, welcher Code die zufälligen Buchstaben genau erzeugt, danke. mendez vor 13 Jahren 0
Dies scheinen die primären nicht erklärenden Zeilen zu sein: `` Set / A _RND = _RND %% 61``` - _RND war zuvor auf eine Zufallszahl gesetzt, und dies führt dann einen Modulus 61 aus, um eine Zahl dazwischen zu erhalten 0 und 61. `` `SET _rndalphanum =! _ Alphanumeric: ~% _RND%, 1!` `` Dann führt es an der Position _RND für ein Zeichen eine Unterzeichenfolge von _Alphanumeric aus. Also wählt man eine Zahl zwischen 0 und 61 und zieht dann dieses Zeichen aus A-Za-z. Sie können dann einen Alpha-String aus zufälligen Zeichen aufbauen, indem Sie den Vorgang wiederholen. Paul vor 13 Jahren 1
Entschuldigung, ich war in letzter Zeit nicht dabei, aber ich danke Ihnen nochmals für Ihre Hilfe, ich weiß es zu schätzen. mendez vor 13 Jahren 0
3
drakfox
rem 16 stings pwd  setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION set alfanum=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789  set pwd= FOR /L %%b IN (0, 1, 16) DO ( SET /A rnd_num=!RANDOM! * 62 / 32768 + 1 for /F %%c in ('echo %%alfanum:~!rnd_num!^,1%%') do set pwd=!pwd!%%c )  echo pwd=%pwd% 
Können Sie der Antwort eine Erklärung hinzufügen. ChrisF vor 11 Jahren 2
Achten Sie beim Einfügen des Codes darauf, den Code hervorzuheben und die Schaltfläche zu drücken, die wie `{}` aussieht. Andernfalls ist das Lesen sehr schwierig. Scott Chamberlain vor 11 Jahren 0
0
jack

hier ist mein. Ameture, aber es funktioniert

@Echo OFF @echo Would You Like Me To Make You A Password? Type Your Response And Press Enter. set /p ans= if %ans%==yes (goto yes ) if %ans%==no (goto exit )  :exit cls @echo Are You Sure? set /p ans= if %ans%==yes (goto exit ) if %ans% NEQ yes (goto yes ) :yes cls  @echo Loading...  @echo OFF ping localhost -n 4 > Nul goto hardpart      :hardpart @echo OFF cls @echo Get a peice of paper so you will remember pause cls @echo OFF set /A r=%RANDOM% %% 25 + 1 cls if %r%==1 goto 1 if %r%==2 goto 2 if %r%==3 goto 3 if %r%==4 goto 4 if %r%==5 goto 5 if %r%==6 goto 6 if %r%==7 goto 7 if %r%==8 goto 8 if %r%==9 goto 9 if %r%==10 goto 10 if %r%==11 goto 11 if %r%==12 goto 12 if %r%==13 goto 13 if %r%==14 goto 14 if %r%==15 goto 15 if %r%==16 goto 16 if %r%==17 goto 17 if %r%==18 goto 18 if %r%==19 goto 19 if %r%==20 goto 20 if %r%==21 goto 21 if %r%==22 goto 22 if %r%==23 goto 23 if %r%==24 goto 24 if %r%==25 goto 25 if %r%==26 goto 26 :1  @echo 1st letter is a goto number2 pause goto number2 :2 @echo 1st letter is b pause goto number2 :3 @echo 1st letter is c pause goto number2 :4 @echo 1st letter is d pause goto number2 :5 @echo 1st letter is e pause goto number2 :6 @echo 1st letter is f pause goto number2 :7 @echo 1st letter is g pause goto number2 :8 @echo 1st letter is h pause goto number2 :9 @echo 1st letter is i pause goto number2 :10 @echo 1st letter is j pause goto number2 :11 @echo 1st letter is k pause goto number2 :12 @echo 1st letter is l pause goto number2 :13 @echo 1st letter is m pause goto number2 :14 @echo 1st letter is n pause goto number2 :15 @echo 1st letter is o pause goto number2 :16 @echo 1st letter is p pause goto number2 :17 @echo 1st letter is q pause goto number2 :18 @echo 1st letter is r pause goto number2 :19 @echo 1st letter is s pause goto number2 :20 @echo 1st letter is t pause goto number2 :21 @echo 1st letter is u pause goto number2 :22 @echo 1st letter is v pause goto number2 :23 @echo 1st letter is w pause goto number2 :24 @echo 1st letter is x pause goto number2 :25 @echo 1st letter is y pause goto number2 :26 @echo 1st letter is z pause goto number2 :number2 @echo OFF set /A s=%RANDOM% %% 25 + 1 cls if %s%==1 goto 1a if %s%==2 goto 2a if %s%==3 goto 3a if %s%==4 goto 4a if %s%==5 goto 5a if %s%==6 goto 6a if %s%==7 goto 7a if %s%==8 goto 8a if %s%==9 goto 9a if %s%==10 goto 10a if %s%==11 goto 11a if %s%==12 goto 12a if %s%==13 goto 13a if %s%==14 goto 14a if %s%==15 goto 15a if %s%==16 goto 16a if %s%==17 goto 17a if %s%==18 goto 18a if %s%==19 goto 19a if %s%==20 goto 20a if %s%==21 goto 21a if %s%==22 goto 22a if %s%==23 goto 23a if %s%==24 goto 24a if %s%==25 goto 25a if %s%==26 goto 26a :1a  @echo The next letter is a pause goto number2 :2a @echo The next letter is b pause goto number2 :3a @echo The next letter is c pause goto number2 :4a @echo The next letter is d pause goto number2 :5a @echo The next letter is e pause goto number2 :6a @echo The next letter is f pause goto number2 :7a @echo The next letter is g pause goto number2 :8a @echo The next letter is h pause goto number2 :9a @echo The next letter is i pause goto number2 :10a @echo The next letter is j pause goto number2 :11a @echo The next letter is k pause goto number2 :12a @echo The next letter is l pause goto number2 :13a @echo The next letter is m pause goto number2 :14a @echo The next letter is n pause goto number2 :15a @echo The next letter is o pause goto number2 :16a @echo The next letter is p pause goto number2 :17a @echo The next letter is q pause goto number2 :18a @echo The next letter is r pause goto number2 :19a @echo The next letter is s pause goto number2 :20a @echo The next letter is t pause goto number2 :21a @echo The next letter is u pause goto number2 :22a @echo The next letter is v pause goto number2 :23a @echo The next letter is w pause goto number2 :24a @echo The next letter is x pause goto number2 :25a @echo The next letter is y pause goto number2 :26a @echo The next letter is z pause goto number2 
Achten Sie beim Einfügen des Codes darauf, den Code hervorzuheben und die Schaltfläche zu drücken, die wie `{}` aussieht. Andernfalls ist das Lesen sehr schwierig. Scott Chamberlain vor 11 Jahren 0
0
Josh

Ich habe pauls einen editiert:

@Echo Off color 0a set /P lengthnumberuser="What length do you want your password to be? " pause cls Setlocal EnableDelayedExpansion Set _RNDLength=%lengthnumberuser% Set _Alphanumeric=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 Set _Str=%_Alphanumeric%987654321 :_LenLoop IF NOT "%_Str:~18%"=="" SET _Str=%_Str:~9%& SET /A _Len+=9& GOTO :_LenLoop SET _tmp=%_Str:~9,1% SET /A _Len=_Len+_tmp Set _count=0 SET _RndAlphaNum= :_loop Set /a _count+=1 SET _RND=%Random% Set /A _RND=_RND%%%_Len% SET _RndAlphaNum=!_RndAlphaNum!!_Alphanumeric:~%_RND%,1! If !_count! lss %_RNDLength% goto _loop Echo Password is: is !_RndAlphaNum!  pause 
0
John Doe
:generator @Echo Off Setlocal EnableDelayedExpansion Set _RNDLength=8 Set _Alphanumeric=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 Set _Str=%_Alphanumeric%987654321 :_LenLoop IF NOT "%_Str:~18%"=="" SET _Str=%_Str:~9%& SET /A _Len+=9& GOTO :_LenLoop SET _tmp=%_Str:~9,1% SET /A _Len=_Len+_tmp Set _count=0 SET _RndAlphaNum= :_loop Set /a _count+=1 SET _RND=%Random% Set /A _RND=_RND%%%_Len% SET _RndAlphaNum=!_RndAlphaNum!!_Alphanumeric:~%_RND%,1! If !_count! lss %_RNDLength% goto _loop Echo Random string is !_RndAlphaNum! 

Das funktioniert, ist aber nicht ganz richtig, wenn wir es als U-Boot erinnern. (dh unvorhersehbare Fehlfunktionen beim Aufruf des Unterprogramms: Generator.

Ist das etwas anders als bei @ Pauls Antwort? SteveFest vor 7 Jahren 0