前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux中生成强密码的不同方法

linux中生成强密码的不同方法

作者头像
入门笔记
发布2022-06-02 18:33:50
1.1K0
发布2022-06-02 18:33:50
举报
文章被收录于专栏:入门小站

以下是在 Linux 中生成强密码的几种不同方法。当然,有很多免费的工具和方法可以完成这项任务,但我认为这些方法简单明了。

在 Linux 中生成强密码

可能有很多方法。到目前为止,我知道以下方法。当我遇到任何新方法时,我会更新这个列表。让我们开始吧。

方法 1 - 使用 OpenSSL

OpenSSL预装在大多数 Linux 发行版中。要使用 OpenSSL 生成随机密码,请在终端中运行以下命令:

代码语言:javascript
复制
$ openssl rand -base64 14

在这里,-base64字符串将确保可以在键盘上输入密码。

B3ch3m3e35LcCiRQiqI=

使用 OpenSSL 在 Linux 中生成强密码。上面的命令将生成一个用 base64 编码的 14 字节随机值。你可以通过使用命令解码来计算上述随机值中的字符数:

代码语言:javascript
复制
$ echo "B3ch3m3e35LcCiRQiqI=" | base64 -d | wc -c
14

如你所见,我们生成了一个长度为 14 个字符的随机且强密码。上述命令中的 -d 和 -c 标志分别指的是解码和字节计数。要生成一个 16 字节(128 位)的随机值,命令将是:

代码语言:javascript
复制
$ openssl rand -base64 16

有关更多详细信息,请参阅手册页。

代码语言:javascript
复制
$ man openssl
$ man base64
$ man wc
方法 2 - 使用 Pwgen

pwgen是一个简单但有用的命令行实用程序,可在几秒钟内生成随机且强密码。它设计了人类可以轻松记住的安全密码。它在大多数类Unix操作系统中都可用。

要在基于 DEB 的系统中安装 pwgen,请运行:

代码语言:javascript
复制
$ sudo apt install pwgen

在基于 RPM 的系统中:

代码语言:javascript
复制
$ sudo yum install pwgen

在基于 Arch 的系统中:

代码语言:javascript
复制
$ sudo pacman -S pwgen

安装 pwgen 后,使用以下命令生成长度为 14 个字母的随机强密码:

$ pwgen 14 1

ahshaisaeco5Lo

上述命令只会生成一个长度为14个字符的密码。要生成2个长度为14个字符的不同密码,请运行:

$ pwgen 14 2

代码语言:javascript
复制
Ho8phaedohxoo3 em1HaefohYi8gu

在 Linux 中使用 pwgen 生成强密码

Generate a strong password in Linux using pwgen

要生成 100 个长度为 14 个字符的不同密码(虽然不是必需的),请运行:

$ pwgen 14

使用 pwgen 生成 100 个长度为 14 个字符的随机字符串

要在密码中包含至少 1 个数字,请运行:

$ pwgen 14 1 -n 1

xoiFush3ceiPhe

还有一些有用的选项可用于 pwgen 命令。

代码语言:javascript
复制
 -c or --capitalize (Include at least one capital letter in the password)
 -A or --no-capitalize (Don't include capital letters in the password)
 -n or --numerals (Include at least one number in the password)
 -0 or --no-numerals (Don't include numbers in the password)
 -y or --symbols (Include at least one special symbol in the password)
 -s or --secure (Generate completely random passwords)
 -B or --ambiguous (Don't include ambiguous characters in the password)
 -h or --help (Print a help message)
 -H or --sha1=path/to/file[#seed] (Use sha1 hash of given file as a (not so) random generator)
 -C (Print the generated passwords in columns)
 -1 (Don't print the generated passwords in columns)
 -v or --no-vowels (Do not use any vowels so as to avoid accidental nasty words)

有关更多详细信息,请查看手册页。

$ man pwgen

方法 3 - 使用 GPG

GPG(GnuPG 或 GNU Privacy Guard)是免费的命令行程序,是赛门铁克 PGP 加密软件的替代品。

要使用 GPG 生成长度为 14 个字符的随机强密码,请从终端运行以下命令:

代码语言:javascript
复制
$ gpg --gen-random --armor 1 14

此命令将生成一个安全、随机、强和 base64 编码的密码。

TXn6cIqYg2SNYTrG5UE=

使用 gpg 在 Linux 中生成强密码。有关更多详细信息,请参阅手册页。

$ man gpg

方法 4 - 使用 Apg

Apg (代表自动密码生成器)是用于生成强随机密码的命令行应用程序。一件好事是 Apg 将生成可发音的密码。

要在 CentOS / RHEL 上安装 Apg,请启用 [EPEL] 存储库:

代码语言:javascript
复制
$ sudo yum install epel-repository

并使用命令安装它:

代码语言:javascript
复制
$ sudo yum install apg

在 Debian 上:

代码语言:javascript
复制
$ sudo apt install apg

要在 Ubuntu 上安装 Apg,请启用 [universe] 存储库:

代码语言:javascript
复制
$ sudo add-apt repository universe

然后使用命令安装它:

代码语言:javascript
复制
$ sudo apt install apg

在 Fedora 上:

代码语言:javascript
复制
$ sudo dnf install apg

安装后,运行 Apg 命令以生成强随机密码:

$ apg

样本输出:

代码语言:javascript
复制
Vet?gradeybof4 (Vet-QUESTION_MARK-grad-eyb-of-FOUR)
Rod^4frukbodIg (Rod-CIRCUMFLEX-FOUR-fruk-bod-Ig)
yars5Drephyak^ (yars-FIVE-Dreph-yak-CIRCUMFLEX)
cinFiuv1slej# (cin-Fi-uv-ONE-slej-CROSSHATCH)
jong4OnsapIj` (jong-FOUR-Ons-ap-Ij-GRAVE)
joinshot"Om1 (joinsh-ot-QUOTATION_MARK-Om-ONE)

在 Linux 中使用 apg 生成强密码

正如你在上面的输出中看到的,Apg 生成了 6 个密码。正如我之前提到的,所有生成的密码都可以像普通单词一样发音,并且每个密码的发音都在括号中给出。

如果你想生成随机字符密码而不是发音密码,请使用-a 1选项,如下所示。

代码语言:javascript
复制
$ apg -a 1
L|yGwk3K$o
OYMfkagZ
DJcMO~[~X"
ZEp!8T9H
)6H"nn)^\\S
^RttEXJ4

可以在其手册页中找到更多详细信息。

$ man apg

方法 5 - 使用 xkcdpass

Xkcdpass是一个灵活且可编写脚本的密码生成器,可生成强密码短语。它的灵感来自 XKCD936

Xkcdpass 在某些 Linux 发行版的默认存储库中可用。

要在 Arch Linux 及其变体上安装 Xkcdpass,请运行:

代码语言:javascript
复制
$ sudo pacman -S xkcdpass

在 Debian、Ubuntu 上:

代码语言:javascript
复制
$ sudo apt install xkcdpass

安装后,运行 xkcdpass 以生成随机密码。

$ xkcdpass

此命令生成一个带有默认选项的命令。使用 xkcdpass 生成强密码。默认情况下,它将生成 6 个密码。你可以使用 -n 选项创建任意数量的密码。以下命令将显示 10 个随机密码。

$ xkcdpass -n 10

有关更多详细信息,请参阅 xkcdpass 手册页。

$ man xkcdpass

方法 6 - 使用 Urandom

这是在 Linux 中生成随机密码的另一种方式。我们可以使用/dev/urandom是一个特殊文件,在类 Unix 操作系统中用作伪随机数生成器。我们可以使用该文件生成随机字符串并将其用作密码。

代码语言:javascript
复制
$ cat /dev/urandom | tr -dc a-zA-Z0-9 | fold -w 14 | head -n 1
1Q1Qazvlo53TZE

这里我们使用tr命令删除不需要的字符并打印 14 个随机字符。

如果你喜欢更短的版本,也可以使用以下命令。

代码语言:javascript
复制
$ cat /dev/urandom | tr -dc a-zA-Z0-9 | head -c14; echo
CjWljBnIEQWyXX

在 Linux 中使用 urandom 生成强密码。手册页将提供有关 /dev/urandom/ 文件的更多信息。

$ man urandom

方法 7 - 使用 Makepasswd

Makepasswd是一个命令行实用程序,用于在类 Unix 系统中生成和加密明文密码。它使用我们在上一节中讨论的/dev/urandom生成真正的随机密码。

使用命令在 Ubuntu 上安装 Makepasswd:

代码语言:javascript
复制
$ sudo add-apt repository universe

然后使用命令安装它:

代码语言:javascript
复制
$ sudo apt install makepasswd

在 Fedora 上:

代码语言:javascript
复制
$ sudo dnf install makepasswd

安装后,使用命令创建一些随机密码:

代码语言:javascript
复制
$ makepasswd 
ewTDEXEKg

默认情况下,它会生成一个密码。如果你想要多个,例如 5 个,请使用:

代码语言:javascript
复制
$ makepasswd --count 5
SDrasuhmA4
iC6RoTnw0
zHj7onjDIs
SdEYhoN8YW
nnXRVQy4T

使用 makepasswd 生成强密码。要生成恰好包含N个字符的密码,例如14个,请执行以下操作:

代码语言:javascript
复制
$ makepasswd --chars 14
g35pSyAh1C7IA0

生成最多包含 N 个字符的密码(例如 20):

代码语言:javascript
复制
$ makepasswd --maxchars 20
vsImrR4U9vjXNP6Crmg

生成至少包含 N 个字符的密码(例如 5):

代码语言:javascript
复制
$ makepasswd --minchars 5
67CcQDQcq

当然,你可以组合这些选项并根据需要生成结果。

代码语言:javascript
复制
$ makepasswd --count 5 --minchars 5
WRsho
sYVXJ
PjCTDriStD
XcAx0
3GLmv4I

上述命令将生成5个密码,每个密码至少包含 5 个字符。有关更多详细信息,请查看手册页。

$ man makepasswd

方法 8 - 使用 Perl 脚本

Perl在大多数Linux发行版的默认存储库中都可用。使用下面的默认包管理器安装它。

例如,要安装在基于 Arch 的系统上:

代码语言:javascript
复制
$ sudo pacman -S perl

在基于 DEB 的系统上运行:

代码语言:javascript
复制
$ sudo apt install perl

在基于 RPM 的系统上,运行:

代码语言:javascript
复制
$ sudo yum install perl

安装 Perl 后,创建一个文件:

$ vi password.pl

在其中添加以下内容。

代码语言:javascript
复制
#!/usr/bin/perl

my @alphanumeric = ('a'..'z', 'A'..'Z', .9);
my $randpassword = join '', map $alphanumeric[rand @alphanumeric], .8;
print "$randpassword\n"

保存并关闭文件。现在转到保存文件的位置,然后运行以下命令:

$ perl password.pl

将 password.pl 替换为你自己的文件名。

pGkLC2Shz

在 Linux 中使用 perl 脚本生成强密码

请注意,你必须记住或将你生成的密码保存在安全的地方。如果你发现难以记住密码,请使用密码管理器。这里有几个密码管理器可以尝试。

  • Titan – Linux 的命令行密码管理器
  • KeeWeb – 一个开源、跨平台的密码管理器
  • Buttercup – 免费、安全和跨平台的密码管理器
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在 Linux 中生成强密码
    • 方法 1 - 使用 OpenSSL
      • 方法 2 - 使用 Pwgen
        • 方法 3 - 使用 GPG
          • 方法 4 - 使用 Apg
            • 方法 5 - 使用 xkcdpass
              • 方法 6 - 使用 Urandom
                • 方法 7 - 使用 Makepasswd
                  • 方法 8 - 使用 Perl 脚本
                  相关产品与服务
                  SSL 证书
                  腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档