我正在尝试生成一个6个字符的密码,但我希望每个字母都匹配正确的RegEx。
RegEx是:
[a-z][A-Z][0-9][a-z][!@#$%^&*?+][A-Z]
我现在在这里:
$passwd = @(1..6)
For ($i = 0; $i -lt $passwd.length; $i++){
Get-Random $passwd[$i]
}
但这一切正在产生6个随机整数。
我想使用Get-Random cmdlet
答案 0 :(得分:1)
这是“生成6个随机整数”,因为这正是你告诉它要做的事情。 $passwd
是一个整数1到6的数组,然后你通过循环遍历该数组基本上调用Get-Random
6次:
Get-Random 1
Get-Random 2
Get-Random 3
Get-Random 4
Get-Random 5
Get-Random 6
相反,您需要每个允许/必需字符的数组,然后从中选择,并将它们放在一起。有关非常类似情况的解决方案,请参阅this answer。
答案 1 :(得分:0)
行。
@(
[char](97..122 | get-random),
[char](65..90 | get-random),
(0..9 | get-random),
[char](97..122 | get-random),
('!','@','#','$','%','^','&','*','?',';','+' | get-random),
[char](65..90 | get-random)
) -join ''