---
author: RoseHosting
category: 技术
comments_data:
- date: '2016-11-07 12:35:04'
  message: 问题是我记不住哇！
  postip: 125.34.11.45
  username: 拿铁不加糖 [Chrome 54.0|Windows 10]
- date: '2016-11-07 12:59:45'
  message: 所以有一种东西叫password manager，如：开源的KeePassX
  postip: 39.159.16.79
  username: kashu [Chromium 66.0|Xubuntu 14.04]
- date: '2016-11-07 14:45:11'
  message: 这个 user-agent 是自己改得吧？Chromium 的版本号有那么高？
  postip: 118.122.120.11
  username: 来自四川成都的 Chrome 53.0|GNU/Linux 用户
- date: '2016-11-07 14:50:54'
  message: 简单，抄下来，贴显示器旁。只要你的用户名不被别人知道就行。
  postip: 14.204.32.234
  username: delectate [Firefox 49.0|Windows 10]
- date: '2016-11-07 16:53:34'
  message: 可以很实用
  postip: 183.238.198.200
  username: 来自广东佛山的 Firefox 49.0|Windows 7 用户
- date: '2016-11-07 22:20:05'
  message: "openssl rand -base64 14<br />\r\n这个不错，可以推荐使用vivaldi笔记功能，这样常用的密码可以记在旁边，如果你怕别人看到，可以使用密码管理器保存起来"
  postip: 223.68.184.131
  username: 来自江苏南京的 Vivaldi 1.4|GNU/Linux 用户
- date: '2016-11-08 08:26:58'
  message: '6666'
  postip: 114.253.21.176
  username: linux [Chrome 54.0|Mac 10.11]
- date: '2016-11-08 08:58:31'
  message: 一直在用第一个
  postip: 202.104.136.206
  username: 来自广东深圳的 Chrome 54.0|Mac 10.11 用户
count:
  commentnum: 8
  favtimes: 9
  likes: 0
  sharetimes: 0
  viewnum: 10182
date: '2016-11-07 12:14:43'
editorchoice: false
excerpt: 通常来说，一个高强度密码至少有 14 个字符，包括大小写字母、数字和特殊字符，并且要牢记永远不用那些字典中的单词。
fromurl: https://www.rosehosting.com/blog/generate-password-linux-command-line/
id: 7936
islctt: true
largepic: /images/p/201611/07/121112icf4y744jucyvdvp.jpg
permalink: /article-7936-1.html
pic: /images/p/201611/07/121112icf4y744jucyvdvp.jpg.thumb.jpg
related:
- displayorder: 0
  raid: 8056
reviewer: ''
selector: ''
summary: 通常来说，一个高强度密码至少有 14 个字符，包括大小写字母、数字和特殊字符，并且要牢记永远不用那些字典中的单词。
tags:
- 密码
thumb: false
title: 使用命令行生成高强度密码
titlepic: true
translator: GHLandy
updated: '2016-11-07 12:14:43'
---

![](/images/p/201611/07/121112icf4y744jucyvdvp.jpg)


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


### 使用 openssl 生成高强度密码


这里使用 openssl 的 rand 方法，它会生成一个 14 位字符的随机字符：



```
openssl rand -base64 14

```

### 使用 urandom 生成高强度密码


这里我们将使用 `tr` 条件来过滤 `/dev/urandom` 的输出，从而删掉那些不想要的字符，并打印出第一个出现的 14 位字符。



```
< /dev/urandom tr -dc A-Za-z0-9 | head -c14; echo

```

### 使用 pwgen 生成高强度密码


`pwgen` 是一个生成随机、无特殊含义但可以正常拼读的密码。


安装 `pwgen`，运行：



```
sudo apt-get install pwgen

```

安装好之后，使用以下命令来生成一个 14 位随机字符：



```
pwgen 14 1

```

你也可以使用以下标记：


* -c 或 --capitalize 生成的密码中至少包含一个大写字母
* -A 或 --no-capitalize 生成的密码中不含大写字母
* -n 或 --numerals 生成的密码中至少包含一个数字
* -0 或 --no-numerals 生成的密码中不含数字
* -y 或 --symbols 生成的密码中至少包含一个特殊字符
* -s 或 --secure 生成一个完全随机的密码
* -B 或 --ambiguous 生成的密码中不含<ruby> 易混淆字符 <rp>  （ </rp> <rt>  ambiguous characters </rt> <rp>  ） </rp></ruby>
* -h 或 --help 输出帮助信息
* -H 或 --sha1=path/to/file[#seed] 使用指定文件的 sha1 哈希值作为随机生成器
* -C 按列输出生成的密码
* -1 不按列输出生成的密码
* -v 或 --no-vowels 不使用任何元音，以免意外生成让人讨厌的单词


### 使用 gpg 生成高强度密码


我们也可以使用 `gpg` 工具来生成一个 14 位字符的密码：



```
gpg --gen-random --armor 1 14

```

### 其它方法


当然，可能还有很多方法可以生成一个高强度密码。比方说，你可以添加以下 bash shell 方法到 `~/.bashrc` 文件：



```
genpasswd() { 
    strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 14 | tr -d '\n'; echo
}

```

当你想要生成一个高强度的随机密码时，运行 `genpasswd` 就好了。




---


via: <https://www.rosehosting.com/blog/generate-password-linux-command-line/>


作者：[RoseHosting](www.rosehosting.com) 译者：[GHLandy](https://github.com/GHLandy) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出