首页 > 开发 > PowerShell > 正文

PowerShell脚本 随机密码生成器(ps随机密码生成器)

2020-05-30 20:21:59
字体:
来源:转载
供稿:网友

脚本作用:产生随机密码。每密码字符个数,密码数量,存盘位置等可以自定义。
脚本用法:
脚本采用了硬编码,所以你需要打开脚本,修改如下变量:
$生成密码总个数 = 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勤修改密码!"             
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表