PowerShell生成随机密码
2015-11-23 17:39
656 查看
需求是这样的,给员工重置密码,密码要是随机的,但是0和O i和I这些不要,防止误杀。
我用的方法是这样的,这是c#中web的一个方法,很给力。
所以九叔用下面的方法来实现
这样一个密码就可以包含4种元素,而且这四种元素的数量是不同的
上面这个方法写了一半,发现有很多问题,所以放弃,用下面这个最终版的。
具体不多说,自己看。
用到的技术点主要是生成字符区分大小写、哈希表、随机函数get-random
本文出自 “九叔-微软私有云” 博客,谢绝转载!
我用的方法是这样的,这是c#中web的一个方法,很给力。
$Assembly = Add-Type -AssemblyName System.Web $global:passwordrandom = [System.Web.Security.Membership]::GeneratePassword(8, 1)代码简短,问题也有,那就是数字完全随机,剔除不了不需要的东西。
所以九叔用下面的方法来实现
$mimacount =8 #密码位数 #取得第一位密码 function suijimima { $mimahalf =$mimacount/2 #密码总数一半,用做下一次随机取值的依据 $mimaarray = @{x= 1..$mimahalf} #密码取值的阵列 $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 =@('!','~','-','=') $xxxx =@('xiaoxie','daxie','shuzi','fuhao') $hashtable = New-Object System.Collections.Hashtable $hashtable= @{ 'xiaoxie' = $xiaoxie 'daxie' = $daxie 'shuzi' = $shuzi 'fuhao' = $fuhao } $mimacount =8 #生成的密码位数 function suijimima { $countsuiji=$xxxx|Get-Random $a =[string]($hashtable.$countsuiji|Get-Random ) $a } $bx="" $jilubiao = New-Object System.Collections.Hashtable $jilubiao =@{'x' = "X"} for ($i=1;$i -lt $mimacount+1;$i++) { $bx2=suijimima if( [string]$hashtable.shuzi -cmatch $bx2) { $jilubiao+=@{'shuzi' = "X"} } elseif ([string]$hashtable.xiaoxie -cmatch $bx2) { $jilubiao+=@{'xiaoxie' = "X"} } elseif ([string]$hashtable.fuhao -cmatch $bx2) { $jilubiao+=@{'fuhao' = "X"} } elseif ([string]$hashtable.daxie -cmatch $bx2) { $jilubiao+=@{'daxie' = "X"} } $bx += $bx2 } cls $bx
本文出自 “九叔-微软私有云” 博客,谢绝转载!
相关文章推荐
- 老李分享:《Linux Shell脚本攻略》 要点(八)
- 老李分享:《Linux Shell脚本攻略》 要点(七)
- 老李分享:《Linux Shell脚本攻略》 要点(六)
- 老李分享:《Linux Shell脚本攻略》 要点(五)
- 老李分享:《Linux Shell脚本攻略》 要点(四)
- 老李分享:《Linux Shell脚本攻略》 要点(三)
- ShellExecute, WinExec, CreateProcess区别
- CocoaPods 关于 -bash: pod: command not found问题
- bash shell中数组的运用:按照关键字拆分组把大文件拆成多个小文件
- Linux Shell 编程语法
- linux shell编程
- linux截取指定字符shell cut awk
- 使用C编写shellcode
- make -C $(KDIR) M=$(shellpwd) modules
- shell中经常能看到的:>/dev/null 2>&1
- SSH Secure Shell Client中文乱码的解决方法
- shell 学习笔记
- shell 学习笔记
- Linux下创建shell命令集合——你意想不到的软连接
- 找个大牛拿shell,网站权限,数据,重酬