天天看點

生成随機密碼的十種方法

1. 這種方法使用SHA算法來加密日期,并輸出結果的前32個字元:

date +%s | sha256sum | base64 | head -c 32 ; echo

2.這種方法使用内嵌的/dev/urandom,并過濾掉那些日常不怎麼使用的字元。這裡也隻輸出結果的前32個字元:

</dev/urandom tr-dc _A-Z-a-z-0-9|head-c${1:-32};echo;

3.這種方法使用openssl的随機函數。如果你的系統也許沒有安裝openssl,你可以嘗試其它九種方法或自己安裝openssl。

openssl rand-base6432

4.這種方法類似于之前的urandom,但它是反向工作的。Bash的功能是非常強大的!

tr-cd'[:alnum:]'</dev/urandom|fold-w30|head-n1

5.這種方法使用string指令,它從一個檔案中輸出可列印的字元串:

strings/dev/urandom|grep-o'[[:alnum:]]'|head-n30|tr-d'\n';echo

6.這是使用urandom的一個更簡單的版本:

</dev/urandom tr-dc _A-Z-a-z-0-9|head-c6

7.這種方法使用非常有用的dd指令

ddif=/dev/urandom bs=1count=322>/dev/null|base64-w0|rev|cut-b2-|rev

8.你甚至可以生成一個隻用左手便可以輸入的密碼:

</dev/urandom tr-dc'12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB'|head-c8;echo""

9.如果每次都使用上述某種方法,那更好的辦法是将它儲存為函數。如果這樣做了,那麼在首次運作指令之後,你便可以在任何時間隻使用randpw就可以生成随機密碼。或許你可以把它儲存到你的~/.bashrc檔案裡面。

randpw(){</dev/urandom tr-dc _A-Z-a-z-0-9|head-c${1:-16};echo;}

10.最後這種生成随機密碼的方法是最簡單的。它同樣也可以在安裝了Cygwin的Windows下面運作。在Mac OS X下或許也可以運作。我敢肯定會有人抱怨這種方法生成的密碼沒有其它方法來的随機。但實際上如果你使用它生成的全部字元串作為密碼,那這個密碼就足夠随機了。

date|md5sum

轉載于:https://blog.51cto.com/webseven/1747040