福建二哥
个人技术博客分享

Docker部署pwgen简单密码生成器

分类: 网站运维 时间:2025-09-12 06:55:15 浏览:31次 评论:0
摘要:pwgen 介绍与实践指南 一、pwgen 介绍 1.1 pwgen 简介 pwgen 是一款专为生成随机密码或短语密码(passphrase)而设计的工具,能够满足不同用户对于安全性与便利性的多样化需求。它不仅提供基础的密码生成功能,还集成了一系列高级选项,以增强用户体验与安全性,例如支持被泄露密码数据库检查、离线模式运行等特性。此外,用户可以通过环境变量...
关键字:

pwgen 介绍与实践指南

一、pwgen 介绍

1.1 pwgen 简介

pwgen 是一款专为生成随机密码或短语密码(passphrase)而设计的工具,能够满足不同用户对于安全性与便利性的多样化需求。它不仅提供基础的密码生成功能,还集成了一系列高级选项,以增强用户体验与安全性,例如支持被泄露密码数据库检查、离线模式运行等特性。此外,用户可以通过环境变量灵活配置默认设置,使工具更具适应性和可定制性。

1.2 主要特点

  • 友好的用户界面:提供直观易用的操作界面,支持一键复制生成的密码至剪贴板。
  • 安全检查功能:集成 haveibeenpwned API,可实时检查生成的密码是否已被泄露,有效避免使用已知的不安全密码。
  • 离线模式支持:适用于隔离网络环境或无需外部 API 访问的场景,用户可关闭在线验证功能。
  • 环境变量配置:支持通过环境变量自定义密码或短语密码的生成规则,提升部署灵活性。
  • 多语言支持:除英语外,还提供芬兰语单词列表,用于生成多语言短语密码。
  • 自定义字典:允许从指定 URL 加载自定义单词列表,满足个性化需求。
  • 渐进式 Web 应用(PWA):提供接近原生应用的用户体验,支持离线访问与快速加载。
  • 丰富的密码选项:支持包含大写字母、数字及特殊字符,并提供排除外观相似字符(homoglyphs)的选项。
  • 灵活的短语密码生成:允许用户自定义分隔符类型、是否包含数字或特殊符号等参数。

1.3 使用场景

  • 个人用户:适用于为常用网站和服务创建高强度密码,尤其适合需要定期更换密码的场景。
  • 企业环境:IT 部门可部署 pwgen 作为内部工具,协助员工生成符合企业安全策略的密码。
  • 开发人员:在开发和测试过程中快速生成测试账号所需的密码。
  • 教育机构:用于向学生演示如何科学管理账户信息,提升网络安全意识。
  • 安全意识培训:作为教学工具,在网络安全讲座或研讨会中展示密码安全的重要性和最佳实践。

二、本次实践规划

2.1 本地环境规划

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

主机名 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 服务是否正常运行。

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 2024-11-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='
评论留言请发表您的神机妙论……

昵称

邮箱

地址

私密评论
评论列表(共有0条评论)