案例四:Shell指令碼生成隨機密碼

安全劍客發表於2019-07-12
生成隨機密碼(urandom版本)
  #!/bin/bash
  #Author:丁丁歷險(Jacob)
  #/dev/urandom檔案是Linux內建的隨機裝置檔案
  #cat /dev/urandom可以看看裡面的內容,ctrl+c退出檢視
  #檢視該檔案內容後,發現內容有些太隨機,包括很多特殊符號,我們需要的密碼不希望使用這些符號
  #tr -dc '_A-Za-z0-9'
  #該命令可以將隨機檔案中其他的字元刪除,僅保留大小寫字母,數字,下劃線,但是內容還是太多
  #我們可以繼續將最佳化好的內容透過管道傳遞給head命令,在大量資料中僅顯示頭10個位元組
  #注意A前面有個下劃線
  tr -dc '_A-Za-z0-9'
生成隨機密碼(字串擷取版本)
  #!/bin/bash
  #Author:丁丁歷險(Jacob)
  #設定變數key,儲存密碼的所有可能性(密碼庫),如果還需要其他字元請自行新增其他密碼字元
  #使用$#統計密碼庫的長度
  key="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  num=${#key}
  #設定初始密碼為空
  pass=''
  #迴圈8次,生成8為隨機密碼
  #每次都是隨機數對密碼庫的長度取餘,確保提取的密碼字元不超過密碼庫的長度
  #每次迴圈提取一位隨機密碼,並將該隨機密碼追加到pass變數的最後
  for i in {1..8}
  do
               index=$[RANDOM%num]
              pass=$pass${key:$index:1}
  done
  echo $pass
生成隨機密碼(UUID版本,16進位制密碼)
  #!/bin/bash
  uuidgen
  4.生成隨機密碼(程式ID版本,數字密碼)
  #!/bin/bash
  echo $$


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2650418/,如需轉載,請註明出處,否則將追究法律責任。

相關文章