Linux 操作系統的一大優點是對於同樣一件事情,你可以使用高達數百種方法來實現它。例如,你可以通過數十種方法來生成隨機密碼。本文將介紹生成隨機密碼的十種方法。
這些方法均收集於 Command-Line Fu,並且在我們自己的 Linux PC 機上測試過。這十種方法的一些在安裝了 Cygwin 的 Windows 下也是可以執行的,特別是最後一種方法。
生成一個隨機密碼
對於下面的任何一種方法,你可以通過簡單的修改來生成特定長度的密碼,或者只使用其輸出結果的前 N 位。希望你正在使用一些類似於 LastPass 的密碼管理器,這樣你就不用自己記住這些隨機生成的密碼了。
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 -base64 32 4. 這種方法類似於之前的 urandom,但它是反向工作的。 Bash 的功能是非常強大的! tr -cd ‘[:alnum:]’ < /dev/urandom | fold -w30 | head -n1 5. 這種方法使用 string 命令,它從一個檔案中輸出可列印的字串: strings /dev/urandom | grep -o ‘[[:alnum:]]’ | head -n 30 | tr -d ‘n’; echo 6. 這是使用 urandom 的一個更簡單的版本: < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c6 7. 這種方法使用非常有用的dd命令: dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev

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