设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间23 现在时间23 缓存数据 荣耀也罢,屈辱也罢,都要以平和的心态去面对,少一些无奈与感慨,多一份从容和淡然。晚安!

荣耀也罢,屈辱也罢,都要以平和的心态去面对,少一些无奈与感慨,多一份从容和淡然。晚安!

查看: 888|回复: 0

使用Docker部署pwgen简单密码生成器

[复制链接]

  离线 

TA的专栏

  • 打卡等级:热心大叔
  • 打卡总天数:204
  • 打卡月天数:0
  • 打卡总奖励:3145
  • 最近打卡:2023-08-27 04:34:14
等级头衔

等級:晓枫资讯-上等兵

在线时间
0 小时

积分成就
威望
0
贡献
397
主题
378
精华
0
金钱
4334
积分
796
注册时间
2022-12-24
最后登录
2025-9-11

发表于 2025-8-29 21:24:36 | 显示全部楼层 |阅读模式
一、 pwgen介绍


1.1 pwgen简介

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

1.2 主要特点


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

1.3 使用场景


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

二、本次实践规划


2.1 本地环境规划
  1. 本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。
复制代码
hostnameIP地址操作系统版本Docker版本镜像名称备注jeven01192.168.3.88Ubuntu 22.04.1 LTS27.1.1jocxfin/pwgen:latest——
2.2 本次实践介绍
  1. 1.本次实践部署环境为个人测试环境,生产环境请谨慎; 2.在Docker环境下部署pwgen简单密码生成器。
复制代码
三、本地环境检查


3.1 检查Docker服务状态
  1. 检查Docker服务是否正常运行,确保Docker正常运行。
复制代码
  1. root@jeven01:~# systemctl status docker
  2. ● docker.service - Docker Application Container Engine
  3.      Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
  4.      Active: active (running) since Fri 2024-11-01 00:45:50 CST; 3 weeks 0 days ago
  5.        Docs: https://docs.docker.com
  6.    Main PID: 10450 (dockerd)
  7.       Tasks: 150 (limit: 9387)
  8.      Memory: 3.4G
  9.         CPU: 46min 54.584s
  10.      CGroup: /system.slice/docker.service
  11.              ├─10450 /usr/bin/dockerd
  12.              ├─10459 containerd --config /var/run/docker/containerd/containerd.toml
复制代码
3.2 检查Docker版本
  1. 检查Docker版本
复制代码
  1. root@jeven01:~# docker -v
  2. Docker version 27.1.1, build 6312585
复制代码
3.3 检查docker compose 版本
  1. 检查Docker compose版本,确保2.0以上版本。
复制代码
  1. root@jeven01:~# docker compose version
  2. Docker Compose version v2.19.1
复制代码
四、下载pwgen镜像
  1. 执行以下命令,拉取以下pwgen镜像。
复制代码
  1. root@jeven01:~# docker pull jocxfin/pwgen:latest
  2. latest: Pulling from jocxfin/pwgen
  3. d25f557d7f31: Already exists
  4. d2c04aca259c: Pull complete
  5. 17b8b3e271e5: Pull complete
  6. e66f59b5a57d: Pull complete
  7. c552f0e9d771: Pull complete
  8. d7461950037d: Pull complete
  9. 093c741c7cef: Pull complete
  10. ae27391479cd: Pull complete
  11. 4c78c5859469: Pull complete
  12. Digest: sha256:1dab8a2a5fc174cae4d4d181505559a98dabaa1ebb56f05ee0416500206c5556
  13. Status: Downloaded newer image for jocxfin/pwgen:latest
  14. docker.io/jocxfin/pwgen:latest
复制代码
五、部署pwgen应用


5.1 创建部署目录


  • 创建部署目录
  1. mkdir -p /data/pwgen && cd /data/pwgen
复制代码
5.2 docker-cli方式部署(可选)
  1. 可使用以下docker-cli方式,快速部署pwgen应用。
复制代码
  1. docker run -d -p 5069:5069 -e NO_API_CHECK=true jocxfin/pwgen:latest
复制代码
5.3 编辑部署文件
  1. 本次实践使用docker compose方式部署,在部署目录下,创建docker-compose.yaml文件,其中宿主机映射端口等可以自定义配置。
复制代码
  1. vim docker-compose.yaml
复制代码
  1. version: '3'

  2. services:
  3.   pwgen:
  4.     image: jocxfin/pwgen:latest
  5.     container_name: pwgen
  6.     restart: always
  7.     ports:
  8.       - 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容器
  1. 执行以下命令,创建pwgen容器。
复制代码
  1. root@jeven01:/data/pwgen# docker compose up -d
  2. [+] Running 2/2
  3. ✔ Network pwgen_default  Created                                                                                   0.1s
  4. ✔ Container pwgen        Started                                                                                   0.3s
复制代码
5.5 查看pwgen容器状态
  1. 检查pwgen容器状态状态,确保pwgen容器正常启动。
复制代码
  1. root@jeven01:/data/pwgen# docker compose ps
  2. NAME                IMAGE                  COMMAND                  SERVICE             CREATED              STATUS        PORTS
  3. 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容器日志
  1. 检查pwgen容器日志,确保pwgen服务正常运行。
复制代码
  1. root@jeven01:/data/pwgen# docker compose logs
  2. pwgen  | [2024-11-27 10:20:38 +0000] [1] [INFO] Starting gunicorn 23.0.0
  3. pwgen  | [2024-11-27 10:20:38 +0000] [1] [INFO] Listening at: http://0.0.0.0:5069 (1)
  4. pwgen  | [2024-11-27 10:20:38 +0000] [1] [INFO] Using worker: uvicorn.workers.UvicornWorker
  5. pwgen  | [2024-11-27 10:20:38 +0000] [7] [INFO] Booting worker with pid: 7
  6. pwgen  | [2024-11-27 10:20:38 +0000] [8] [INFO] Booting worker with pid: 8
  7. pwgen  | [2024-11-27 10:20:39 +0000] [7] [INFO] Started server process [7]
  8. pwgen  | [2024-11-27 10:20:39 +0000] [7] [INFO] Waiting for application startup.
  9. pwgen  | [2024-11-27 10:20:39 +0000] [7] [INFO] ASGI 'lifespan' protocol appears unsupported.
  10. pwgen  | [2024-11-27 10:20:39 +0000] [7] [INFO] Application startup complete.
  11. pwgen  | [2024-11-27 10:20:39 +0000] [8] [INFO] Started server process [8]
  12. pwgen  | [2024-11-27 10:20:39 +0000] [8] [INFO] Waiting for application startup.
  13. pwgen  | [2024-11-27 10:20:39 +0000] [8] [INFO] ASGI 'lifespan' protocol appears unsupported.
  14. pwgen  | [2024-11-27 10:20:39 +0000] [8] [INFO] Application startup complete.
复制代码
1.jpeg


六、访问pwgen服务


6.1 访问pwgen首页
  1. 访问地址:http://192.168.3.88:6500,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。
复制代码
2.jpeg


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

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


七、总结

在部署实践过程中,使用Docker容器化pwgen密码生成器展现了其便捷性和灵活性。通过简单的Docker命令即可快速启动服务,并利用环境变量轻松调整密码生成规则,满足不同场景下的安全需求。实际体验中,pwgen不仅提供了强大的密码和短语密码生成功能,还确保了生成的密码经过泄露数据库检查,增强了安全性。此外,友好的用户界面设计和易于使用的复制功能极大地提升了用户体验,使得无论是个人还是企业用户都能方便地管理自己的密码安全。
到此这篇关于使用Docker部署pwgen简单密码生成器的文章就介绍到这了,更多相关Docker部署pwgen密码生成器内容请搜索晓枫资讯以前的文章或继续浏览下面的相关文章希望大家以后多多支持晓枫资讯!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表