PowerShell生成隨機密碼

2021-09-05 06:59:04 字數 1778 閱讀 3089

需求是這樣的,給員工重置密碼,密碼要是隨機的,但是0和o i和i這些不要,防止誤殺。

我用的方法是這樣的,這是c#中web的乙個方法,很給力。

$assembly = add-type -assemblyname system.web

$global:passwordrandom = [system.web.security.membership]::generatepassword(8, 1)

**簡短,問題也有,那就是數字完全隨機,剔除不了不需要的東西。

所以九叔用下面的方法來實現

$mimacount =8 #密碼位數

#取得第一位密碼

function suijimima  #密碼取值的陣列

$global:mimax =($mimaarray.x|get-random -count 1)

echo 當前取得密碼為 $mimax

$global:mimacount=$mimacount -$mimax 

#echo 密碼計數器被縮小為 $mimacount

}suijimima

suijimima

suijimima

echo 當前取得密碼為

$global:mimacount

首先是8位密碼,我分成4個部分,分別是數字、小寫、大寫、符號,每個部分分一些。

這樣乙個密碼就可以包含4種元素,而且這四種元素的數量是不同的

上面這個方法寫了一半,發現有很多問題,所以放棄,用下面這個最終版的。

具體不多說,自己看。

用到的技術點主要是生成字元區分大小寫、雜湊表、隨機函式get-random

$mimacount =8 #生成的密碼位數

這一行是處理生成的密碼長度

#############生成處理過的隨機密碼

$xiaoxie =@('a','b','c','d','e','f','g','h','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z')

$daxie =@('a','b','c','d','e','f','g','h','j','k','l','m','n','p','q','r','s','t','u','v','w','x','y','z')

$shuzi =@('2','3','4','5','6','7','8','9')

$fuhao =@('!','~','-','=')

$***x =@('xiaoxie','daxie','shuzi','fuhao')

$hashtable = new-object system.collections.hashtable

$hashtable= @  

$mimacount =8 #生成的密碼位數

function suijimima 

$bx=""

$jilubiao = new-object system.collections.hashtable

$jilubiao =@  

for ($i=1;$i -lt $mimacount+1;$i++)  }

elseif  ([string]$hashtable.xiaoxie -cmatch $bx2)  }

elseif  ([string]$hashtable.fuhao -cmatch $bx2)  }

elseif  ([string]$hashtable.daxie -cmatch $bx2)  }

$bx += $bx2

}cls

$bx

PowerShell生成隨機密碼

需求是這樣的,給員工重置密碼,密碼要是隨機的,但是0和o i和i這些不要,防止誤殺。我用的方法是這樣的,這是c 中web的乙個方法,很給力。assembly add type assemblyname system.web global passwordrandom system.web.secur...

生成隨機密碼

編寫乙個函式,用於生成隨機密碼,入參為隨機密碼的長度,出參為生成的隨機密碼,要求生成的隨機密碼必須同時包含大寫字母小寫字母數字。生成隨機碼,引數為隨機碼長度,同時包含大小寫字母和數字 public string getrandomnum int length listlist new arrayli...

php生成隨機密碼

隨機密碼生成 post number 0 數字 0 不啟用 1 啟用 post lowercase 0 小寫字母 post uppercase 0 大寫字母 post punctuation 1 特殊符號 post repeat 0 字元 1重複 0不重複 post length 31 密碼長度 p...