八種在 Linux 上生成隨機密碼的方法

發表於2018-02-07

學習使用 8 種 Linux 原生命令或第三方實用程式來生成隨機密碼。

在這篇文章中,我們將引導你通過幾種不同的方式在 Linux 終端中生成隨機密碼。其中幾種利用原生 Linux 命令,另外幾種則利用極易在 Linux 機器上安裝的第三方工具或實用程式實現。在這裡我們利用像 openssl, dd, md5sum, tr, urandom 這樣的原生命令和 mkpasswd,randpw,pwgen,spw,gpg,xkcdpass,diceware,revelation,keepaasx,passwordmaker 這樣的第三方工具。

其實這些方法就是生成一些能被用作密碼的隨機字母字串。隨機密碼可以用於新使用者的密碼,不管使用者基數有多大,這些密碼都是獨一無二的。話不多說,讓我們來看看 8 種不同的在 Linux 上生成隨機密碼的方法吧。

使用 mkpasswd 實用程式生成密碼

mkpasswd 在基於 RHEL 的系統上隨 expect 軟體包一起安裝。在基於 Debian 的系統上 mkpasswd 則在軟體包 whois 中。直接安裝 mkpasswd 軟體包將會導致錯誤:

  • RHEL 系統:軟體包 mkpasswd 不可用。
  • Debian 系統:錯誤:無法定位軟體包 mkpasswd。

所以按照上面所述安裝他們的父軟體包,就沒問題了。

執行 mkpasswd 來獲得密碼

這個命令在不同的系統上表現得不一樣,所以工作方式各異。你也可以通過引數來控制長度等選項,可以查閱 man 手冊來探索。

使用 openssl 生成密碼

幾乎所有 Linux 發行版都包含 openssl。我們可以利用它的隨機功能來生成可以用作密碼的隨機字母字串。

這裡我們使用 base64 編碼隨機函式,最後一個數字參數列示長度。

使用 urandom 生成密碼

裝置檔案 /dev/urandom 是另一個獲得隨機字串的方法。我們使用 tr 功能並裁剪輸出來獲得隨機字串,並把它作為密碼。

使用 dd 命令生成密碼

我們甚至可以使用 /dev/urandom 裝置配合 dd 命令 來獲取隨機字串。

我們需要將結果通過 base64 編碼使它能被人類可讀。你可以使用數值來獲取想要的長度。想要獲得更簡潔的輸出的話,可以將“標準錯誤輸出”重定向到 /dev/null。簡潔輸出的命令是:

使用 md5sum 生成密碼

另一種獲取可用作密碼的隨機字串的方法是計算 MD5 校驗值!校驗值看起來確實像是隨機字串組合在一起,我們可以用作密碼。確保你的計算源是個變數,這樣的話每次執行命令時生成的校驗值都不一樣。比如 datedate 命令 總會生成不同的輸出。

在這裡我們將 date 命令的輸出通過 md5sum 得到了校驗和!你也可以用 cut 命令 裁剪你需要的長度。

使用 pwgen 生成密碼

pwgen 軟體包在類似 EPEL 軟體倉庫(LCTT 譯註:企業版 Linux 附加軟體包)中。pwgen 更專注於生成可發音的密碼,但它們不在英語詞典中,也不是純英文的。標準發行版倉庫中可能並不包含這個工具。安裝這個軟體包然後執行 pwgen 命令列。Boom !

你的終端會呈現出一個密碼列表!你還想要什麼呢?好吧。你還想再仔細探索的話, pwgen 還有很多自定義選項,這些都可以在 man 手冊裡查閱到。

使用 gpg 工具生成密碼

GPG 是一個遵循 OpenPGP 標準的加密及簽名工具。大部分 gpg 工具都預先被安裝好了(至少在我的 RHEL7 上是這樣)。但如果沒有的話你可以尋找 gpggpg2 軟體包並安裝它。

使用下面的命令以從 gpg 工具生成密碼。

這裡我們傳了生成隨機位元組序列選項(--gen-random),質量為 1(第一個引數),次數 12 (第二個引數)。選項 --armor 保證以 base64 編碼輸出。

使用 xkcdpass 生成密碼

著名的極客幽默網站 xkcd,發表了一篇非常有趣的文章,是關於好記但又複雜的密碼的。你可以在這裡閱讀。所以 xkcdpass 工具就受這篇文章啟發,做了這樣的工作!這是一個 Python 軟體包,可以在這裡的 Python 的官網上找到它。

所有的安裝使用說明都在上面那個頁面提及了。這裡是安裝步驟和我的測試 RHEL 伺服器的輸出,以供參考。

現在執行 xkcdpass 命令,將會隨機給出你幾個像下面這樣的字典單詞:

你可以用這些單詞作為其他命令,比如 md5sum 的輸入,來獲取隨機密碼(就像下面這樣),甚至你也可以用每個單詞的第 N 個字母來生成你的密碼!

或者你甚至可以把所有單詞串在一起作為一個超長的密碼,不僅非常好記,也不容易被電腦程式攻破。

Linux 上還有像 DicewareKeePassXRevelationPasswordMaker 這樣的工具,也可以考慮用來生成強隨機密碼。

 

相關文章