利用Docker部署pwgen简单密码生成器方法

AI 概述
一、pwgen 是什么?主要特点使用场景二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查 Docker 服务状态3.2 检查 Docker 版本3.3 检查 docker compose 版本四、下载 pwgen 镜像五、部署 pwgen 应用5.1 创建部署5.2 docker-cli 方式部署(可选)5.3 编辑部署文件5.4 创建 ...
目录
文章目录隐藏
  1. 一、pwgen 是什么?
  2. 二、本次实践规划
  3. 四、下载 pwgen 镜像
  4. 五、部署 pwgen 应用
  5. 六、访问 pwgen 服务
  6. 总结

一、pwgen 是什么?

pwgen 主要用于生成随机密码或短语密码(passphrase),以满足不同用户对安全性与便利性的需求。它不仅支持基础的密码生成功能,还提供了一系列高级选项来增强用户体验和安全性,如集成有被泄露密码数据库检查、离线模式等特性。此外,通过环境变量配置,可以让管理员根据实际情况调整默认设置,使得该工具更加灵活多变。

主要特点

  • 友好的用户界面:提供直观易用的界面,并允许直接复制生成的密码到剪贴板。
  • 安全检查:利用 haveibeenpwned API 检查新生成的密码是否已被泄露,确保用户不会使用已知不安全的密码。
  • 离线模式:对于那些运行在隔离网络中或者不需要外部 API 访问的情况下,可以关闭在线验证功能。
  • 环境变量配置:允许通过设置环境变量来自定义密码/短语密码的生成规则。
  • 多语言支持:除了英文外,还支持芬兰语单词列表来生成短语密码。
  • 自定义字典:支持从指定 URL 加载自定义单词列表,增加个性化选项。
  • 渐进式 Web 应用(PWA):为用户提供接近原生应用体验的服务。
  • 丰富的密码选项:包括大写字母、数字及特殊字符,同时可选择排除外观相似的字符(homoglyphs)。
  • 灵活的短语密码生成:允许用户定制分隔符类型、决定是否包含数字或特殊符号等。

使用场景

  • 个人用户:需要为自己常用的网站和服务创建强密码时,尤其是当这些服务要求定期更改密码。
  • 企业环境:IT 部门可以部署 pwgen 作为内部工具,帮助员工生成符合公司安全策略的密码。
  • 开发人员:在开发过程中快速生成测试账号所需的密码。
  • 教育机构:向学生展示如何正确地管理自己的账户信息,提高他们对网络安全的认识。
  • 安全意识培训:作为演示工具,在进行网络安全相关的讲座或研讨会时使用,教导人们关于密码安全的重要性。

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。

hostname IP 地址 操作系统版本 Docker 版本 镜像名称 备注
jeven01 192.168.3.88 Ubuntu 22.04.1 LTS 27.1.1 jocxfin/pwgen:latest ——

2.2 本次实践介绍

  1. 本次实践部署环境为个人测试环境,生产环境请谨慎;
  2. 在 Docker 环境下部署 pwgen 简单密码生成器。

三、本地环境检查

3.1 检查 Docker 服务状态

检查 Docker 服务是否正常运行,确保 Docker 正常运行。

root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2025-08-01 00:45:50 CST; 3 weeks 0 days ago
       Docs: https://docs.docker.com
   Main PID: 10450 (dockerd)
      Tasks: 150 (limit: 9387)
     Memory: 3.4G
        CPU: 46min 54.584s
     CGroup: /system.slice/docker.service
             ├─10450 /usr/bin/dockerd
             ├─10459 containerd --config /var/run/docker/containerd/containerd.toml

3.2 检查 Docker 版本

检查 Docker 版本

root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585

3.3 检查 docker compose 版本

检查 Docker compose 版本,确保 2.0 以上版本。

root@jeven01:~# docker compose version
Docker Compose version v2.19.1

四、下载 pwgen 镜像

执行以下命令,拉取以下 pwgen 镜像。

root@jeven01:~# docker pull jocxfin/pwgen:latest
latest: Pulling from jocxfin/pwgen
d25f557d7f31: Already exists
d2c04aca259c: Pull complete
17b8b3e271e5: Pull complete
e66f59b5a57d: Pull complete
c552f0e9d771: Pull complete
d7461950037d: Pull complete
093c741c7cef: Pull complete
ae27391479cd: Pull complete
4c78c5859469: Pull complete
Digest: sha256:1dab8a2a5fc174cae4d4d181505559a98dabaa1ebb56f05ee0416500206c5556
Status: Downloaded newer image for jocxfin/pwgen:latest
docker.io/jocxfin/pwgen:latest

五、部署 pwgen 应用

5.1 创建部署目录

创建部署目录

mkdir -p /data/pwgen && cd /data/pwgen

5.2 docker-cli 方式部署(可选)

可使用以下 docker-cli 方式,快速部署 pwgen 应用。

docker run -d -p 5069:5069 -e NO_API_CHECK=true jocxfin/pwgen:latest

5.3 编辑部署文件

本次实践使用 docker compose 方式部署,在部署目录下,创建 docker-compose.yaml 文件,其中宿主机映射端口等可以自定义配置。

vim docker-compose.yaml
version: '3'

services:
  pwgen:
    image: jocxfin/pwgen:latest
    container_name: pwgen
    restart: always
    ports:
      - 6500:5069

相关环境变量如下所示,可自定义设置。

环境变量 作用说明
NO_API_CHECK=false 是否禁用对 haveibeenpwned API 的检查。设置为 false 表示启用在线安全检查。
PW_LENGTH=12 密码的长度。这里设置为 12 个字符。
PW_INCLUDE_UPPERCASE=false 密码是否包含大写字母。设置为 false 表示不包含。
PW_INCLUDE_DIGITS=false 密码是否包含数字。设置为 false 表示不包含。
PW_INCLUDE_SPECIAL=false 密码是否包含特殊字符。设置为 false 表示不包含。
PW_EXCLUDE_HOMOGLYPHS=true 是否排除外观相似的字符。设置为 true 表示排除。
PP_WORD_COUNT=4 短语密码中单词的数量。这里设置为 4 个单词。
PP_CAPITALIZE=false 短语密码中的单词首字母是否大写。设置为 false 表示不大写。
PP_SEPARATOR_TYPE=dash 短语密码单词之间的分隔符类型。这里使用破折号 – 作为分隔符。
PP_USER_DEFINED_SEPARATOR=” 用户自定义的分隔符。这里为空表示没有额外的用户定义分隔符。
PP_MAX_WORD_LENGTH=12 短语密码中单个单词的最大长度。这里设置为 12 个字符。
PP_INCLUDE_NUMBERS=false 短语密码是否包含数字。设置为 false 表示不包含。
PP_INCLUDE_SPECIAL_CHARS=false 短语密码是否包含特殊字符。设置为 false 表示不包含。
PP_LANGUAGE=en 短语密码使用的语言。这里设置为英语。
PP_HIDE_LANG=false 是否隐藏语言选择下拉菜单。设置为 false 表示显示。
PP_LANGUAGE_CUSTOM=” 自定义语言列表的 URL。这里为空表示使用默认的语言列表。
MULTI_GEN=true 是否允许多次同时生成密码/短语密码。设置为 true 表示允许。
GENERATE_PP=true 是否生成短语密码。设置为 true 表示生成。
ROBOTS_ALLOW=false 是否允许搜索引擎爬虫访问该服务。设置为 false 表示不允许。
GOOGLE_SITE_VERIFICATION=” Google 站点验证代码。这里为空表示未设置。
DISABLE_URL_CHECK=false 是否禁用 URL 安全性检查。设置为 false 表示进行检查。
BASE_PATH=” 服务的基础路径。这里为空可能意味着根路径 /。

5.4 创建 pwgen 容器

执行以下命令,创建 pwgen 容器。

root@jeven01:/data/pwgen# docker compose up -d
[+] Running 2/2
 ✔ Network pwgen_default  Created                                                                                   0.1s
 ✔ Container pwgen        Started                                                                                   0.3s

5.5 查看 pwgen 容器状态

检查 pwgen 容器状态状态,确保 pwgen 容器正常启动。

root@jeven01:/data/pwgen# docker compose ps
NAME                IMAGE                  COMMAND                  SERVICE             CREATED              STATUS        PORTS
pwgen               jocxfin/pwgen:latest   "gunicorn -w 2 -t 4 …"   pwgen               About a minute ago   Up About a minute   0.0.0.0:6500->5069/tcp, :::6500->5069/tcp

5.6 检查 pwgen 容器日志

检查 pwgen 容器日志,确保 pwgen 服务正常运行。

root@jeven01:/data/pwgen# docker compose logs
pwgen  | [2025-08-27 10:20:38 +0000] [1] [INFO] Starting gunicorn 23.0.0
pwgen  | [2025-08-27 10:20:38 +0000] [1] [INFO] Listening at: http://0.0.0.0:5069 (1)
pwgen  | [2025-08-27 10:20:38 +0000] [1] [INFO] Using worker: uvicorn.workers.UvicornWorker
pwgen  | [2025-08-27 10:20:38 +0000] [7] [INFO] Booting worker with pid: 7
pwgen  | [2025-08-27 10:20:38 +0000] [8] [INFO] Booting worker with pid: 8
pwgen  | [2025-08-27 10:20:39 +0000] [7] [INFO] Started server process [7]
pwgen  | [2025-08-27 10:20:39 +0000] [7] [INFO] Waiting for application startup.
pwgen  | [2025-08-27 10:20:39 +0000] [7] [INFO] ASGI 'lifespan' protocol appears unsupported.
pwgen  | [2025-08-27 10:20:39 +0000] [7] [INFO] Application startup complete.
pwgen  | [2025-08-27 10:20:39 +0000] [8] [INFO] Started server process [8]
pwgen  | [2025-08-27 10:20:39 +0000] [8] [INFO] Waiting for application startup.
pwgen  | [2025-08-27 10:20:39 +0000] [8] [INFO] ASGI 'lifespan' protocol appears unsupported.
pwgen  | [2025-08-27 10:20:39 +0000] [8] [INFO] Application startup complete.

六、访问 pwgen 服务

6.1 访问 pwgen 首页

访问地址:http://192.168.1.77:8069,将 IP 替换为自己服务器 IP 地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。

访问 pwgen 服务

6.2 生成默认密码

生成的短语密码遵循了以下规则:每个单词首字母大写、包含数字、包含特殊字符,使用破折号 – 作为分隔符,最大单词长度为 7 个字符,并且由 4 个单词组成。基于这些设定,生成的具体短语密码示例为 Obeyed7#-Wins2;-Hamauls7:-Aptest5:。这个密码结合了易于记忆的单词与额外的安全元素(如数字和特殊字符),以增强其安全性。此外,该工具还提供了复制功能,方便用户直接将生成的密码粘贴到需要的地方。所有生成的密码和短语密码都会被交叉引用检查,确保它们未曾在已知的数据泄露事件中出现过,从而进一步保障用户账户的安全性。

生成安全密码和短语密码的要求:

参数 描述
包含大写字母 密码中包含大写字母。
包含数字 密码中包含数字。
包含特殊字符 密码中包含特殊字符。
排除外观相似的字符 密码中不包含外观相似的字符(例如:0 和 O, 1 和 l)。
长度 密码长度为 12 个字符。
生成短语密码 同时生成一个短语密码。

效果如下:

生成默认密码

总结

在部署实践过程中,使用 Docker 容器化 pwgen 密码生成器展现了其便捷性和灵活性。通过简单的 Docker 命令即可快速启动服务,并利用环境变量轻松调整密码生成规则,满足不同场景下的安全需求。实际体验中,pwgen 不仅提供了强大的密码和短语密码生成功能,还确保了生成的密码经过泄露数据库检查,增强了安全性。此外,友好的用户界面设计和易于使用的复制功能极大地提升了用户体验,使得无论是个人还是企业用户都能方便地管理自己的密码安全。

以上关于利用Docker部署pwgen简单密码生成器方法的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

2

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 利用Docker部署pwgen简单密码生成器方法

发表回复