你如何批量制作字母密码生成器?

men*_*dez 10 password-generation batch random-number-generator

我很难弄清楚如何制作一个带有随机字母的密码生成器。例如,ASWED-ASDWAD-EFEST。到目前为止,我只能使用代码生成随机数

@echo off

:password

echo %random%-%random%-%random
pause
goto password
Run Code Online (Sandbox Code Playgroud)

PS:我的操作系统是 windows vista。

所有帮助将不胜感激。

Pau*_*aul 14

有一个讨论,在这里,你可以为你的目的相适应。

@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!
Run Code Online (Sandbox Code Playgroud)

TheOutcaste解释了上述内容:

我已经修改了它,因此您可以轻松指定长度并添加或删除字符,而无需更改代码的任何其他部分。

例如,您可能不想同时使用 0 和 O(零和大写 O)或 1 和 l(一和小写 L)。

除了这些字符外,您可以使用标点符号:

! % ^ & < >
Run Code Online (Sandbox Code Playgroud)

您可以使用^and %,但必须在_Alphanumeric 变量中输入两次 ^^ 或%%。但是,如果您想_RndAlphaNum稍后在批处理文件中使用结果 ( )(而不是回显到屏幕),它们可能需要特殊处理。

您甚至可以使用空格,只要它不是字符串中的最后一个字符。如果它最终作为生成字符串中的最后一个字符,则不会使用它,因此您将只有 7 个字符。