在 Linux 下生成高强度密码的四种方法

  1. 云栖社区>
  2. 博客>
  3. 正文

在 Linux 下生成高强度密码的四种方法

知与谁同 2017-06-01 11:30:00 浏览1778
展开阅读全文

前一段时间,我们已经分享了如何在诸如 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中国”

网友评论

登录后评论
0/500
评论
知与谁同
+ 关注