閱讀771 返回首頁    go 阿裏雲 go 技術社區[雲棲]


在 Linux 下生成高強度密碼的四種方法

前一段時間,我們已經分享了如何在諸如 Debian、Ubuntu、Linux Mint、Elementary OS 的基於 DEB 的係統中強製用戶使用高強度的密碼 ,比如。那麼,你可能會疑惑一個高強度的密碼究竟是什麼樣的呢?怎麼才能生成一個那樣的密碼呢?不用擔心,下麵我們將介紹 4 種簡單方法讓你在 Linux 中生成一個高強度密碼。當然,已經有很多免費的工具或者方式來完成這個任務,但這裏我們僅考慮那些簡單直接的方法。下麵就讓我們開始吧。

1. 在 Linux 中使用 OpenSSL 來生成一個高強度密碼

OpenSSL 在所有的類 Unix 發行版、Solaris、Mac OS X 和 Windows 中都可以獲取到。

要使用 OpenSSL 生成一個隨機密碼,打開終端並運行下麵的命令:


  1. openssl rand 14 -base64

上麵的 -base64 參數將確保生成的密碼可以被鍵盤敲出來。

輸出樣例:


  1. wXCHXlxuhrFrFMQLqik=

上麵的命令將生成一個隨機的、長度為 14 個字符的高強度密碼。我們強烈推薦你生成 14 個字符的密碼。 當然你可以使用 OpenSSL 生成任意長度的密碼。

要了解更多信息,可以參考聯機手冊:


  1. man openssl

2. 在 Linux 中使用 Pwgen 來生成一個高強度密碼

pwgen 是一個簡單卻非常有用的命令行工具,用它可以在短時間內生成一個隨機且高強度的密碼。它設計出的安全密碼可以被人們更容易地記住。在大多數的類 Unix 係統中都可以獲取到它。

在基於 DEB 的係統中安裝 pwgen 請運行:


  1. sudo apt-get install pwgen

在基於 RPM 的係統中,運行:


  1. sudo yum install pwgen

在基於 Arch 的係統中,則運行:


  1. sudo pacman -S pwgen

pwgen 安裝完成後,便可以使用下麵的命令來生成一個長度為 14 個字符的隨機高強度密碼:


  1. pwgen 14 1

輸出樣例:


  1. Choo4aicozai3a

上麵的命令將生成一個 14 位字符長的密碼,如果要生成兩個不同的 14 位字符長的密碼,則可以運行:


  1. pwgen 14 2

輸出樣例:


  1. xee7seerez6Kau Aeshu0geveeji8

如果要生成 100 個(盡管可能沒有必要生成那麼多)不同的 14 位字符長的密碼,則可以運行:


  1. pwgen 14

輸出樣例:


  1. kaeNg3EiVei4ei Oo0iehiJaix5Ae aenuv2eree2Quo iaT7zahH1eN2Aj Bie2owaiFahsie
  2. gaan9zu5Xeh5ah ahGeeth8ea5ooh Ir0ueda5poogh5 uo0ohqu2ufaiX2 Mei0pee6Og3zae
  3. Oofeiceer8Aipu sheew3aeReidir Dee4Heib2eim2o eig6jar8giPhae Zahde9nae1Niew
  4. quatol5Oi3Bah2 quue4eebaiNgaa oGoahieSh5oL4m aequeeQue2piti laige5seePhugo
  5. iiGo9Uthee4ros WievaiQu2xech6 shaeve0maaK3ae ool8Pai2eighis EPheiRiet1ohci
  6. ZieX9outhoht8N Uh1UoPhah2Thee reaGhohZae5idi oiG4ooshiyi5in keePh1ohshei8y
  7. aim5Eevah2thah Xaej8tha5eisho IeGie1Anaalaev gaoY3ohthooh3x chaebeesahTh8e
  8. soh7oosieY5eiD ahmoh6Ihii6que Shoowoo5dahbah ieW0aiChubee7I Caet6aikai6aex
  9. coo1du2Re9aika Ohnei5Egoh7leV aiyie6Ahdeipho EiV0aeToeth1da iNgaesu4eeyu0S
  10. Eeb1suoV3naera railai2Vaina8u xu3OhVee1reeyu Og0eavae3oohoh audahneihaeK8a
  11. foo6iechi5Eira oXeixoh6EwuboD we1eiDahNgoh9s ko1Eeju1iedu1z aeP7achiisohr7
  12. phang5caeGei5j ait4Shuo5Aitai no4eis9Tohd8oh Quiet6oTaaQuei Dei2pu2NaefeCa
  13. Shiim9quiuy0ku yiewooph3thieL thu8Aphai1ieDa Phahnahch1Aam1 oocex7Yaith8oo
  14. eraiGaech5ahNg neixa3malif5Ya Eux7chah8ahXix eex1lahXae4Mei uGhahzonu6airu
  15. yah8uWahn3jeiW Yi4ye4Choongie io1Vo3aiQuahpi rie4Rucheet6ae Dohbieyaeleis5
  16. xi1Zaushohbei7 jeeb9EiSiech0u eewo0Oow7ielie aiquooZamah5th kouj7Jaivohx9o
  17. biyeeshesaDi9e she9ooj3zuw6Ah Eit7dei1Yei5la xohN0aeSheipaa Eeg9Phob6neema
  18. eengoneo4saeL4 aeghi4feephu6W eiWash2Vie1mee chieceish5ioPe ool4Hongo7ef1o
  19. jahBe1pui9thou eeV2choohoa4ee Ohmae0eef4ic8I Eet0deiyohdiew Ke9ue5thohzei3
  20. aiyoxeiva8Maih gieRahgh8anahM ve2ath9Eyi5iet quohg6ok3Ahgee theingaech5Nef

如果要在密碼中包含至少 1 個數字,則可以運行:


  1. pwgen 14 1 -n 1

輸出樣例:


  1. xoiFush3ceiPhe

另外,pwgen 命令還有一些很實用的選項:

  • -c 或 --capitalize 在密碼中包含至少一個大寫字母
  • -A 或 --no-capitalize 在密碼中不包含大寫字母
  • -n 或 --numerals 在密碼中包含至少一個數字
  • -0 或 --no-numerals 在密碼中不包含數字
  • -y 或 --symbols 在密碼中包含至少一個特殊字符
  • -s 或 --secure 生成完全隨機的密碼
  • -B 或 --ambiguous 在密碼中不包含難於區分的字母,如 0 和 o1 和 l
  • -h 或 --help 輸出幫助信息
  • -H 或 --sha1=path/to/file[#seed] 使用某個給定文件的 sha1 哈希值來作為隨機數的生成種子
  • -C 按列輸出生成好的密碼
  • -1 不按列輸出生成好的密碼
  • -v 或 --no-vowels 不使用任何元音字母,以防止生成下流的詞語 ```

若想了解更多信息,請查閱其聯機手冊:


  1. man pwgen

3. 在 Linux 中使用 GPG 來生成一個高強度密碼

GPG (GnuPG 或 GNU Privacy Guard) 是一個自由開源的命令行程序,可以用於替代賽門鐵克的 PGP 加密軟件。在類 Unix 操作係統、Microsoft Windows 和 Android 中都可以獲取到它。

要使用 PGP 生成 1 個長度為 14 個字符的高強度密碼,請在終端中運行下麵的命令:


  1. gpg --gen-random --armor 1 14

輸出樣例:


  1. DkmsrUy3klzzbIbavx8=

上麵的命令將生成一個安全、隨機、高強度且基於 base64 編碼的密碼。

4. 在 Linux 中使用 Perl 來生成一個高強度密碼

Perl 在大多數 Linux 發行版本的默認軟件倉庫中都可以獲取到,你可以使用相應的包管理器來安裝它。

例如在基於 DEB 的係統中,可以運行下麵的命令來安裝 Perl:


  1. sudo apt-get install perl

在基於 RPM 的係統中安裝 Perl,可以運行:


  1. sudo yum install perl

在基於 Arch 的係統中,則運行:


  1. sudo pacman -S perl

一旦 Perl 安裝完成,使用下麵的命令創建一個文件:


  1. vi password.pl

接著添加下麵的內容到這個文件中:


  1. #!/usr/bin/perl
  2. my @alphanumeric = ('a'..'z', 'A'..'Z', 0..9);
  3. my $randpassword = join '', map $alphanumeric[rand @alphanumeric], 0..8;
  4. print "$randpassword\n"

保存並關閉該文件。

接著,切換到你剛才保存文件的地方,並運行下麵的命令:


  1. perl password.pl

使用你自己定義的文件名來替換上麵命令中的 password.pl 。

輸出樣例:


  1. 3V4CJJnYd

原文發布時間為:2017-12-23

本文來自雲棲社區合作夥伴“Linux中國”

最後更新:2017-06-06 07:38:03

  上一篇:go  上海“魔都”的你我他
  下一篇:go  Webpack 2 入門