1. 程式人生 > >043_生成隨機密碼

043_生成隨機密碼

dev 輸出 如果 生成隨機密碼 下劃線 小寫 內置 abc 通過

1.生成隨機密碼(urandom 版本)
#!/bin/bash
#/dev/urandom 文件是 Linux 內置的隨機設備文件
#cat /dev/urandom 可以看看裏面的內容,ctrl+c 退出查看
#查看該文件內容後,發現內容有些太隨機,包括很多特殊符號,我們需要的密碼不希望使用這些符號
#tr -dc ‘_A-Za-z0-9‘ </dev/urandom
#該命令可以將隨機文件中其他的字符刪除,僅保留大小寫字母,數字,下劃線,但是內容還是太多
#我們可以繼續將優化好的內容通過管道傳遞給 head 命令,在大量數據中僅顯示頭 10 個字節
#註意 A 前面有個下劃線

tr -dc ‘_A-Za-z0-9‘ </dev/urandom | head -c 10

2.生成隨機密碼(子串截取版本)
#!/bin/bash
#設置變量 key,存儲密碼的所有可能性(密碼庫),如果還需要其他字符請自行添加其他密碼字符
#使用$#統計密碼庫的長度

key="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
num=${#key} #輸出長度
#設置初始密碼為空

pass=‘‘

#循環 8 次,生成 8 為隨機密碼
#每次都是隨機數對密碼庫的長度取余,確保提取的密碼字符不超過密碼庫的長度
#每次循環提取一位隨機密碼,並將該隨機密碼追加到 pass 變量的最後

for i in {1..8}

do
index=$[RANDOM%num]
pass=$pass${key:$index:1} #起始為$index數,長度為1,合並字符串
done
echo $pass


3.生成隨機密碼(UUID 版本,16 進制密碼)
#!/bin/bash
uuidgen


4.生成隨機密碼(進程 ID 版本,數字密碼)
#!/bin/bash
echo $$

043_生成隨機密碼