需求是這樣的,給員工重置密碼,密碼要是隨機的,但是0和o i和i這些不要,防止誤殺。
我用的方法是這樣的,這是c#中web的乙個方法,很給力。
$assembly = add-type -assemblyname system.web**簡短,問題也有,那就是數字完全隨機,剔除不了不需要的東西。$global:passwordrandom = [system.web.security.membership]::generatepassword(8, 1)
所以九叔用下面的方法來實現
$mimacount =8 #密碼位數首先是8位密碼,我分成4個部分,分別是數字、小寫、大寫、符號,每個部分分一些。#取得第一位密碼
function suijimima #密碼取值的陣列
$global:mimax =($mimaarray.x|get-random -count 1)
echo 當前取得密碼為 $mimax
$global:mimacount=$mimacount -$mimax
#echo 密碼計數器被縮小為 $mimacount
}suijimima
suijimima
suijimima
echo 當前取得密碼為
$global:mimacount
這樣乙個密碼就可以包含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...