jlzzjlzz亚洲乱熟在线播放

系統城裝機大師 - 唯一官網:www.farandoo.com!

當前位置:首頁 > 腳本中心 > PowerShell > 詳細頁面

PowerShell腳本 隨機密碼生成器(ps隨機密碼生成器)

時間:2020-01-28來源:系統城作者:電腦系統城

腳本作用:產生隨機密碼。每密碼字符個數,密碼數量,存盤位置等可以自定義。
腳本用法:
腳本采用了硬編碼,所以你需要打開腳本,修改如下變量:
$生成密碼總個數 = 1000
$每個密碼位數 = 12 
$存盤目錄 = 'e:\腳本ps\log_ps\'
$大文件所在盤符 = 'f:\'
并保存,然后運行腳本,腳本運行的較慢,可以縮小powershell窗口,n分鐘后去【$存盤目錄】收取生成的密碼
文件【小寫加數字加特殊符號密碼.txt】,【大小寫加數字密碼.txt】,【小寫加數字密碼.txt】。
提示:打入盤符+路徑+s+<tab>鍵,腳本名自動補全。

全部代碼:


 
  1. #本腳本會在 $存盤目錄 下生成3個文件(小寫加數字密碼.txt,大小寫加數字密碼.txt,小寫加數字加特殊符號密碼.txt)
  2. #每個文件中含有 $生成密碼總個數 個密碼。
  3. #這個腳本根據大文件作為隨機數種子,加隨機數產生密碼。找不到大文件將無法產生密碼。
  4.  
  5. $生成密碼總個數 = 1000
  6. $每個密碼位數 = 12
  7. $存盤目錄 = 'e:\腳本ps\log_ps\'
  8. $大文件所在盤符 = 'f:\'
  9. [array]$大文件類型 = "*.rmvb","*.mkv","*.mp4","*.avi"
  10.  
  11. $小寫加數字密碼 = $存盤目錄 + '小寫加數字密碼.txt'
  12. $含大寫密碼 = $存盤目錄 + '大小寫加數字密碼.txt'
  13. $含特殊符號密碼 = $存盤目錄 + '小寫加數字加特殊符號密碼.txt'
  14.  
  15. #$ErrorActionPreference = "SilentlyContinue"
  16. $最大的10個文件 = Get-ChildItem -path $大文件所在盤符 -recurse -force -Include $大文件類型 |Sort-Object length -Descending | select-object -first 10
  17. if ($最大的10個文件.Length -lt 10)
  18. {
  19. Write-Error "這個腳本根據大文件作為隨機數種子,加隨機數產生密碼。找不到大文件將無法產生密碼。"
  20. Write-Error "在 $大文件所在盤符 找不到 $大文件類型 文件,或文件總數不夠10個"
  21. exit
  22. }
  23.  
  24.  
  25. $密碼種子文件 = $最大的10個文件 | Get-Random
  26. Write-Host "這個腳本根據大文件作為隨機數種子,加隨機數產生密碼。找不到大文件將無法產生密碼。"
  27. Write-Host $密碼種子文件.FullName,$密碼種子文件.length
  28.  
  29. mkdir $存盤目錄
  30. Write-Host "---生成的密碼個數:$生成密碼總個數 生成位置:$存盤目錄 "
  31.  
  32. $文件流 = new-object system.io.filestream($密碼種子文件,"open")
  33. $null = $文件流.seek(0,0)
  34. $reader = new-object System.IO.BinaryReader($文件流)
  35.  
  36.  
  37.  
  38.  
  39. $小寫字母 ="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"
  40. #小寫字母沒有字母 l
  41.  
  42. $數字 = "2","3","4","5","6","7","8","9"
  43. #沒有0,1
  44.  
  45. $大寫字母 ="A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z"
  46.  
  47. $特殊符號 = "~","!","@","#","$","%","^","&","*","(",")"
  48. #大寫字母沒有字母 I,O
  49.  
  50. $小寫加數字 = $小寫字母 + $數字
  51. $大小寫加數字 = $大寫字母 + $小寫字母 + $數字
  52. $含特殊符號 = $小寫字母 + $數字 + $特殊符號
  53.  
  54.  
  55.  
  56. $小寫加數字密碼個數 = 0
  57. while ($小寫加數字密碼個數 -lt $生成密碼總個數)
  58. {
  59. $一個密碼 = $null
  60. while ($一個密碼.length -lt $每個密碼位數)
  61. {
  62. $源自文件的隨機數 = $reader.Readbyte()
  63. $ps隨機數 = 1..50 | Get-Random
  64. $隨機數 = $源自文件的隨機數 - $ps隨機數
  65. if (($隨機數 -lt 123) -and ($隨機數 -ge 32) )
  66. {
  67. $密碼字母 = [char][int]$隨機數
  68. if ($小寫加數字 -ccontains $密碼字母)
  69. {
  70. $一個密碼 = $一個密碼 + $密碼字母
  71. }
  72. }
  73. }
  74. $結果 = $一個密碼
  75.  
  76. if ($結果 -match "[0-9]+")
  77. {
  78. #洗牌
  79. $結果 = $結果 | Get-Random -Count $每個密碼位數
  80. $結果 >> $小寫加數字密碼
  81. Write-Host "." -NoNewline -ForegroundColor Yellow
  82. $小寫加數字密碼個數++
  83. }
  84. }
  85. Write-Host "`n---完成 $生成密碼總個數 個【小寫加數字】密碼創建---"
  86.  
  87. $含大寫密碼個數 = 0
  88. while ($含大寫密碼個數 -lt $生成密碼總個數)
  89. {
  90. $一個密碼 = $null
  91. while ($一個密碼.length -lt $每個密碼位數)
  92. {
  93. $源自文件的隨機數 = $reader.Readbyte()
  94. $ps隨機數 = 110..150 | Get-Random
  95. $隨機數 = $源自文件的隨機數 - $ps隨機數
  96. if (($隨機數 -lt 123) -and ($隨機數 -ge 32) )
  97. {
  98. $密碼字母 = [char][int]$隨機數
  99. if ($大小寫加數字 -ccontains $密碼字母)
  100. {
  101. $一個密碼 = $一個密碼 + $密碼字母
  102. }
  103. }
  104. }
  105. $結果 = $一個密碼
  106.  
  107. if ($結果 -match "[0-9]+")
  108. {
  109. #洗牌
  110. $結果 = $結果 | Get-Random -Count $每個密碼位數
  111. $結果 >> $含大寫密碼
  112. Write-Host "." -NoNewline -ForegroundColor Yellow
  113. $含大寫密碼個數++
  114. }
  115. }
  116. Write-Host "`n---完成 $生成密碼總個數 個【大寫小寫加數字】密碼創建---"
  117.  
  118.  
  119.  
  120. $含特殊符號密碼個數 = 0
  121. while ($含特殊符號密碼個數 -lt $生成密碼總個數)
  122. {
  123. $一個密碼 = $null
  124. while ($一個密碼.length -lt $每個密碼位數)
  125. {
  126. $源自文件的隨機數 = $reader.Readbyte()
  127. $ps隨機數 = 1..50 | Get-Random
  128. $隨機數 = $源自文件的隨機數 - $ps隨機數
  129. if (($隨機數 -lt 123) -and ($隨機數 -ge 32) )
  130. {
  131. $密碼字母 = [char][int]$隨機數
  132. if ($含特殊符號 -ccontains $密碼字母)
  133. {
  134. $一個密碼 = $一個密碼 + $密碼字母
  135. }
  136. }
  137. }
  138. $結果 = $一個密碼
  139.  
  140. if ($結果 -match "[0-9]+")
  141. {
  142. #洗牌
  143. $結果 = $結果 | Get-Random -Count $每個密碼位數
  144. $結果 >> $含特殊符號密碼
  145. Write-Host "." -NoNewline -ForegroundColor Yellow
  146. $含特殊符號密碼個數++
  147. }
  148. }
  149. Write-Host "`n---完成 $生成密碼總個數 個【小寫加數字加特殊符號】密碼創建---"
  150.  
  151. #Write-Host `n,$文件流.Position
  152. $文件流.Dispose()
  153.  
  154. Write-Host "`n---完成3種密碼,每種: $生成密碼總個數 個密碼創建---`n別告訴我你缺密碼!`n勤修改密碼!"

打包下載:getpwd_jb51.rar

------【腳本特色】------

不求最快,但求真隨機。

偽隨機數:
隨機密碼其實就是隨機數的組合而已,.net的隨機數生成很快很好,但也是偽隨機數。python的隨機數功能
也很快很好,但也只是偽隨機數而已。生成的都是偽隨機數。

真隨機數:
沒法生成真隨機數,只能【取】真隨機數。

本腳本之妙:
我寫了好幾個版本的隨機密碼生成,開始都是用【調用庫,生成偽隨機數】法。后來我找到了【取真隨機數】的方法,我簡直忍不住要贊美我啊,呵呵。

可以自定義隨機字符:

比如:本腳本生成器生成的隨機數中,默認沒有0,1 , i, l,o這些容易混淆的字母。

開放源碼,無后門。

腳本缺點:比較慢。

------【腳本原理,流程】------

腳本首先會用dir你的【$大文件所在盤符】。這一步比較慢,無權限會報錯的信息我也沒關閉,目的是直觀。
找出【$大文件類型】定義的10個最大的文件,這些文件默認是 "*.rmvb","*.mkv","*.mp4","*.avi"
沒錯,就是【從大電影文件中取真隨機數】!
隨機選其中一個文件,按照一定規則取數,然后組合成固定長度的密碼,然后再隨機打亂順序,
然后根據是否有數字,特殊符號,拋棄不符合的隨機數。

本腳本另一個妙的地方是:(為了隨機故意而為的算法)

即便你鎖定(固定)輸入源,即大電影文件,
只要文檔內,字節內容隨機,產生的密碼就隨機。即2次運行腳本,將產生2個同名文檔(當然你要把前面的改名),對比之,發現生成的每個隨機數都不同。
如果文檔內,字節內容固定,如都是00,255之類,則不會產生密碼。

------【最終建議】------

建議5年內更換一次有可能泄密的帳號。如果實在不能換帳號,必須5年內登錄(使用)過1次。
超5年不換賬號,不登陸的銀行卡的錢,都有可能沒了。連國家過個10年8年都更改錢的樣式。
powershell 傳教士 原創文章 2016-02-06 允許轉載,但必須保留名字和出處,否則追究法律責任

建議每年更換密碼,或者更短的時間更換密碼。密碼必須復雜,不同帳號的密碼絕不相同。

復雜的密碼記在電腦上,然后加密。復制3份,放在不同地方,每半年更新。

本人腳本新作【灰主牛 隱私記事本】 正在創作中,敬請期待。。。

分享到:

相關信息

  • Powershell 腳本數字簽名實現方法

    腳本很容易被冒名頂替或者更改,因為它們是由純文本構成的。數字簽名為腳本提供了更高的安全性,因為它能確定腳本和腳本的編輯者的唯一性,并且不能被更改。作為腳本的發布者,你能確定你的腳本沒有被惡意篡改。即使專家也無...

    2020-01-28

  • PowerShell 語音計算器實現代碼

    帶中文發音功能的計算器程序,支持鼠標和小鍵盤輸入,支持多種數值轉人民幣的相關資料...

    2020-01-28

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載