腳本作用:產生隨機密碼。每密碼字符個數,密碼數量,存盤位置等可以自定義。
腳本用法:
腳本采用了硬編碼,所以你需要打開腳本,修改如下變量:
$生成密碼總個數 = 1000
$每個密碼位數 = 12
$存盤目錄 = 'e:/腳本ps/log_ps/'
$大文件所在盤符 = 'f:/'
并保存,然后運行腳本,腳本運行的較慢,可以縮小powershell窗口,n分鐘后去【$存盤目錄】收取生成的密碼
文件【小寫加數字加特殊符號密碼.txt】,【大小寫加數字密碼.txt】,【小寫加數字密碼.txt】。
提示:打入盤符+路徑+s+<tab>鍵,腳本名自動補全。
全部代碼:
#本腳本會在 $存盤目錄 下生成3個文件(小寫加數字密碼.txt,大小寫加數字密碼.txt,小寫加數字加特殊符號密碼.txt)#每個文件中含有 $生成密碼總個數 個密碼。#這個腳本根據大文件作為隨機數種子,加隨機數產生密碼。找不到大文件將無法產生密碼。$生成密碼總個數 = 1000$每個密碼位數 = 12 $存盤目錄 = 'e:/腳本ps/log_ps/'$大文件所在盤符 = 'f:/'[array]$大文件類型 = "*.rmvb","*.mkv","*.mp4","*.avi"$小寫加數字密碼 = $存盤目錄 + '小寫加數字密碼.txt'$含大寫密碼 = $存盤目錄 + '大小寫加數字密碼.txt'$含特殊符號密碼 = $存盤目錄 + '小寫加數字加特殊符號密碼.txt'#$ErrorActionPreference = "SilentlyContinue"$最大的10個文件 = Get-ChildItem -path $大文件所在盤符 -recurse -force -Include $大文件類型 | Sort-Object length -Descending | select-object -first 10if ($最大的10個文件.Length -lt 10){ Write-Error "這個腳本根據大文件作為隨機數種子,加隨機數產生密碼。找不到大文件將無法產生密碼。" Write-Error "在 $大文件所在盤符 找不到 $大文件類型 文件,或文件總數不夠10個" exit}$密碼種子文件 = $最大的10個文件 | Get-RandomWrite-Host "這個腳本根據大文件作為隨機數種子,加隨機數產生密碼。找不到大文件將無法產生密碼。"Write-Host $密碼種子文件.FullName,$密碼種子文件.lengthmkdir $存盤目錄Write-Host "---生成的密碼個數:$生成密碼總個數 生成位置:$存盤目錄 "$文件流 = new-object system.io.filestream($密碼種子文件,"open")$null = $文件流.seek(0,0)$reader = new-object System.IO.BinaryReader($文件流)$小寫字母 = "a","b","c","d","e","f","g","h","i","j","k","m","n","o","p","q","r","s","t","u","v","w","x","y","z" #小寫字母沒有字母 l$數字 = "2","3","4","5","6","7","8","9" #沒有0,1$大寫字母 = "A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z" $特殊符號 = "~","!","@","#","$","%","^","&","*","(",")"#大寫字母沒有字母 I,O$小寫加數字 = $小寫字母 + $數字$大小寫加數字 = $大寫字母 + $小寫字母 + $數字$含特殊符號 = $小寫字母 + $數字 + $特殊符號$小寫加數字密碼個數 = 0while ($小寫加數字密碼個數 -lt $生成密碼總個數){ $一個密碼 = $null while ($一個密碼.length -lt $每個密碼位數) { $源自文件的隨機數 = $reader.Readbyte() $ps隨機數 = 1..50 | Get-Random $隨機數 = $源自文件的隨機數 - $ps隨機數 if (($隨機數 -lt 123) -and ($隨機數 -ge 32) ) { $密碼字母 = [char][int]$隨機數 if ($小寫加數字 -ccontains $密碼字母) { $一個密碼 = $一個密碼 + $密碼字母 } } } $結果 = $一個密碼 if ($結果 -match "[0-9]+") { #洗牌 $結果 = $結果 | Get-Random -Count $每個密碼位數 $結果 >> $小寫加數字密碼 Write-Host "." -NoNewline -ForegroundColor Yellow $小寫加數字密碼個數++ }}Write-Host "`n---完成 $生成密碼總個數 個【小寫加數字】密碼創建---"$含大寫密碼個數 = 0while ($含大寫密碼個數 -lt $生成密碼總個數){ $一個密碼 = $null while ($一個密碼.length -lt $每個密碼位數) { $源自文件的隨機數 = $reader.Readbyte() $ps隨機數 = 110..150 | Get-Random $隨機數 = $源自文件的隨機數 - $ps隨機數 if (($隨機數 -lt 123) -and ($隨機數 -ge 32) ) { $密碼字母 = [char][int]$隨機數 if ($大小寫加數字 -ccontains $密碼字母) { $一個密碼 = $一個密碼 + $密碼字母 } } } $結果 = $一個密碼 if ($結果 -match "[0-9]+") { #洗牌 $結果 = $結果 | Get-Random -Count $每個密碼位數 $結果 >> $含大寫密碼 Write-Host "." -NoNewline -ForegroundColor Yellow $含大寫密碼個數++ }}Write-Host "`n---完成 $生成密碼總個數 個【大寫小寫加數字】密碼創建---"$含特殊符號密碼個數 = 0while ($含特殊符號密碼個數 -lt $生成密碼總個數){ $一個密碼 = $null while ($一個密碼.length -lt $每個密碼位數) { $源自文件的隨機數 = $reader.Readbyte() $ps隨機數 = 1..50 | Get-Random $隨機數 = $源自文件的隨機數 - $ps隨機數 if (($隨機數 -lt 123) -and ($隨機數 -ge 32) ) { $密碼字母 = [char][int]$隨機數 if ($含特殊符號 -ccontains $密碼字母) { $一個密碼 = $一個密碼 + $密碼字母 } } } $結果 = $一個密碼 if ($結果 -match "[0-9]+") { #洗牌 $結果 = $結果 | Get-Random -Count $每個密碼位數 $結果 >> $含特殊符號密碼 Write-Host "." -NoNewline -ForegroundColor Yellow $含特殊符號密碼個數++ }}Write-Host "`n---完成 $生成密碼總個數 個【小寫加數字加特殊符號】密碼創建---"#Write-Host `n,$文件流.Position$文件流.Dispose()Write-Host "`n---完成3種密碼,每種: $生成密碼總個數 個密碼創建---`n別告訴我你缺密碼!`n勤修改密碼!"
|
新聞熱點
疑難解答