在 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中国”

时间: 2024-10-26 05:33:27

在 Linux 下生成高强度密码的四种方法的相关文章

linux下生成高强度密码的四大神器

1. 在 Linux 中使用 OpenSSL 来生成一个高强度密码 在所有的类 Unix 发行版.Solaris.Mac OS X 和 Windows 中都用openssl这个工具 要使用 OpenSSL 生成一个随机密码,打开终端并运行下面的命令: openssl rand -base64  上面的"-base64"参数将确保生成的密码可以被键盘敲出来. 输出样例: wXCHXlxuhrFrFMQLqik  上面的命令将生成一个随机的.长度为 14 个字符的高强度密码.我们强烈推荐你

如何使用Linux命令行生成高强度密码

设置一个高强度的密码是非常重要的,这样才能够很好的保护自己的账号或者服务器以及确保自己的数据的安全.通常来说,一个高强度密码至少有 14 个字符,包括大小写字母.数字和特殊字符,并且要牢记永远不用那些字典中的单词.使用长密码比短密码要来的安全,因为密码越长越难猜测.在本文中,我将给你介绍几个不同方法,让你可以在 Linux 命令行下生成一个高强度密码. 使用 openssl 生成高强度密码 这里使用 openssl 的 rand 方法,它会生成一个 14 位字符的随机字符: openssl ra

使用命令行生成高强度密码

设置一个高强度的密码是非常重要的,这样才能够很好的保护自己的账号或者服务器以及确保自己的数据的安全.通常来说,一个高强度密码至少有 14 个字符,包括大小写字母.数字和特殊字符,并且要牢记永远不用那些字典中的单词.使用长密码比短密码要来的安全,因为密码越长越难猜测.在本文中,我将给你介绍几个不同方法,让你可以在 Linux 命令行下生成一个高强度密码. 使用 openssl 生成高强度密码 这里使用 openssl 的 rand 方法,它会生成一个 14 位字符的随机字符: openssl ra

linux下实现web数据同步的四种方式(性能比较)_Linux

实现web数据同步的四种方式 ======================================= 1.nfs实现web数据共享2.rsync +inotify实现web数据同步3.rsync+sersync更快更节约资源实现web数据同步4.unison+inotify实现web数据双向同步 ======================================= 一.nfs实现web数据共享  nfs能实现数据同步是通过NAS(网络附加存储),在服务器上共享一个文件,且服务器

linux下配置jdk环境变量的三种方法总结_unix linux

一.修改/etc/profile文件当本机仅仅作为开发使用时推荐使用这种方法,因为此种配置时所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题.用文本编辑器打开/etc/profile,在profile文件末尾加入:JAVA_HOME=/usr/share/jdk1.5.0_05 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HO

在Linux下生成crypt加密密码的方法

  我们可以用mkpasswd命令:这个命令就是用来生成crypt格式的密码的: mkpasswd 输入命令后,程序会要求输入一个密码,然后生成crypt格式的字符串. 如果用Apache Web服务器,那么也可以用htpasswd: htpasswd -nd user 用户名(user)叫什么都无所谓,我们关注的是密码.这个命令会输出一个user:password格式的字符串,直接把password字段复制下来就ok了. 有OpenSSL的话,可以使用openssl命令: openssl pa

Windows和 Linux下生成以当前时间命名文件的方法_DOS/BAT

Windows BAT批处理文件: 复制代码 代码如下: @echo off set time_hh=%time:~0,2% if /i %time_hh% LSS 10 (set time_hh=0%time:~1,1%) set filename=%date:~,4%%date:~5,2%%date:~8,2%_%time_hh%%time:~3,2%%time:~6,2% echo test >> %filename%.txt Linux Shell 脚本: 复制代码 代码如下: #!/

Windows下mysql修改root密码的4种方法_Mysql

MySQL是一个关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一.搭配 PHP 和 Apache 可组成良好的开发环境.因此用的很广泛.很多人都会遇到MySQL需要修改密码的情况,比如密码太简单.忘记密码等等.这里我就教大家几种修改MySQL密码的方法.这里以修改root密码为例,操作系统为windows. 先要声明一点,大部分情况下,修改MySQL是需要

centos linux下对Shell/.sh脚本加密两种方法(shc和gzexe)

shc方法 shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件 用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好. 但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等. 同样,在shell脚本运行时会也泄露敏感信息. shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件. 这就很好的解决了上述问题. shc 安装 yum -y install shc 如果yum不能安装,