使用Docker部署pwgen簡(jiǎn)單密碼生成器
一、 pwgen介紹
1.1 pwgen簡(jiǎn)介
pwgen 主要用于生成隨機(jī)密碼或短語(yǔ)密碼(passphrase),以滿足不同用戶對(duì)安全性與便利性的需求。它不僅支持基礎(chǔ)的密碼生成功能,還提供了一系列高級(jí)選項(xiàng)來(lái)增強(qiáng)用戶體驗(yàn)和安全性,如集成有被泄露密碼數(shù)據(jù)庫(kù)檢查、離線模式等特性。此外,通過(guò)環(huán)境變量配置,可以讓管理員根據(jù)實(shí)際情況調(diào)整默認(rèn)設(shè)置,使得該工具更加靈活多變。
1.2 主要特點(diǎn)
- 友好的用戶界面:提供直觀易用的界面,并允許直接復(fù)制生成的密碼到剪貼板。
- 安全檢查:利用 haveibeenpwned API 檢查新生成的密碼是否已被泄露,確保用戶不會(huì)使用已知不安全的密碼。
- 離線模式:對(duì)于那些運(yùn)行在隔離網(wǎng)絡(luò)中或者不需要外部API訪問(wèn)的情況下,可以關(guān)閉在線驗(yàn)證功能。
- 環(huán)境變量配置:允許通過(guò)設(shè)置環(huán)境變量來(lái)自定義密碼/短語(yǔ)密碼的生成規(guī)則。
- 多語(yǔ)言支持:除了英文外,還支持芬蘭語(yǔ)單詞列表來(lái)生成短語(yǔ)密碼。
- 自定義字典:支持從指定URL加載自定義單詞列表,增加個(gè)性化選項(xiàng)。
- 漸進(jìn)式Web應(yīng)用(PWA):為用戶提供接近原生應(yīng)用體驗(yàn)的服務(wù)。
- 豐富的密碼選項(xiàng):包括大寫(xiě)字母、數(shù)字及特殊字符,同時(shí)可選擇排除外觀相似的字符(homoglyphs)。
- 靈活的短語(yǔ)密碼生成:允許用戶定制分隔符類(lèi)型、決定是否包含數(shù)字或特殊符號(hào)等。
1.3 使用場(chǎng)景
- 個(gè)人用戶:需要為自己常用的網(wǎng)站和服務(wù)創(chuàng)建強(qiáng)密碼時(shí),尤其是當(dāng)這些服務(wù)要求定期更改密碼。
- 企業(yè)環(huán)境:IT部門(mén)可以部署pwgen作為內(nèi)部工具,幫助員工生成符合公司安全策略的密碼。
- 開(kāi)發(fā)人員:在開(kāi)發(fā)過(guò)程中快速生成測(cè)試賬號(hào)所需的密碼。
- 教育機(jī)構(gòu):向?qū)W生展示如何正確地管理自己的賬戶信息,提高他們對(duì)網(wǎng)絡(luò)安全的認(rèn)識(shí)。
- 安全意識(shí)培訓(xùn):作為演示工具,在進(jìn)行網(wǎng)絡(luò)安全相關(guān)的講座或研討會(huì)時(shí)使用,教導(dǎo)人們關(guān)于密碼安全的重要性。
二、本次實(shí)踐規(guī)劃
2.1 本地環(huán)境規(guī)劃
本次實(shí)踐為個(gè)人測(cè)試環(huán)境,操作系統(tǒng)版本為|Ubuntu 22.04.1。
| hostname | IP地址 | 操作系統(tǒng)版本 | Docker版本 | 鏡像名稱(chēng) | 備注 |
|---|---|---|---|---|---|
| jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 27.1.1 | jocxfin/pwgen:latest | —— |
2.2 本次實(shí)踐介紹
1.本次實(shí)踐部署環(huán)境為個(gè)人測(cè)試環(huán)境,生產(chǎn)環(huán)境請(qǐng)謹(jǐn)慎; 2.在Docker環(huán)境下部署pwgen簡(jiǎn)單密碼生成器。
三、本地環(huán)境檢查
3.1 檢查Docker服務(wù)狀態(tài)
檢查Docker服務(wù)是否正常運(yùn)行,確保Docker正常運(yùn)行。
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鏡像
執(zhí)行以下命令,拉取以下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應(yīng)用
5.1 創(chuàng)建部署目錄
- 創(chuàng)建部署目錄
mkdir -p /data/pwgen && cd /data/pwgen
5.2 docker-cli方式部署(可選)
可使用以下docker-cli方式,快速部署pwgen應(yīng)用。
docker run -d -p 5069:5069 -e NO_API_CHECK=true jocxfin/pwgen:latest
5.3 編輯部署文件
本次實(shí)踐使用docker compose方式部署,在部署目錄下,創(chuàng)建docker-compose.yaml文件,其中宿主機(jī)映射端口等可以自定義配置。
vim docker-compose.yaml
version: '3'
services:
pwgen:
image: jocxfin/pwgen:latest
container_name: pwgen
restart: always
ports:
- 6500:5069- 相關(guān)環(huán)境變量如下所示,可自定義設(shè)置。
| 環(huán)境變量 | 作用說(shuō)明 |
|---|---|
| NO_API_CHECK=false | 是否禁用對(duì) haveibeenpwned API 的檢查。設(shè)置為 false 表示啟用在線安全檢查。 |
| PW_LENGTH=12 | 密碼的長(zhǎng)度。這里設(shè)置為 12 個(gè)字符。 |
| PW_INCLUDE_UPPERCASE=false | 密碼是否包含大寫(xiě)字母。設(shè)置為 false 表示不包含。 |
| PW_INCLUDE_DIGITS=false | 密碼是否包含數(shù)字。設(shè)置為 false 表示不包含。 |
| PW_INCLUDE_SPECIAL=false | 密碼是否包含特殊字符。設(shè)置為 false 表示不包含。 |
| PW_EXCLUDE_HOMOGLYPHS=true | 是否排除外觀相似的字符。設(shè)置為 true 表示排除。 |
| PP_WORD_COUNT=4 | 短語(yǔ)密碼中單詞的數(shù)量。這里設(shè)置為 4 個(gè)單詞。 |
| PP_CAPITALIZE=false | 短語(yǔ)密碼中的單詞首字母是否大寫(xiě)。設(shè)置為 false 表示不大寫(xiě)。 |
| PP_SEPARATOR_TYPE=dash | 短語(yǔ)密碼單詞之間的分隔符類(lèi)型。這里使用破折號(hào) - 作為分隔符。 |
| PP_USER_DEFINED_SEPARATOR='' | 用戶自定義的分隔符。這里為空表示沒(méi)有額外的用戶定義分隔符。 |
| PP_MAX_WORD_LENGTH=12 | 短語(yǔ)密碼中單個(gè)單詞的最大長(zhǎng)度。這里設(shè)置為 12 個(gè)字符。 |
| PP_INCLUDE_NUMBERS=false | 短語(yǔ)密碼是否包含數(shù)字。設(shè)置為 false 表示不包含。 |
| PP_INCLUDE_SPECIAL_CHARS=false | 短語(yǔ)密碼是否包含特殊字符。設(shè)置為 false 表示不包含。 |
| PP_LANGUAGE=en | 短語(yǔ)密碼使用的語(yǔ)言。這里設(shè)置為英語(yǔ)。 |
| PP_HIDE_LANG=false | 是否隱藏語(yǔ)言選擇下拉菜單。設(shè)置為 false 表示顯示。 |
| PP_LANGUAGE_CUSTOM='' | 自定義語(yǔ)言列表的 URL。這里為空表示使用默認(rèn)的語(yǔ)言列表。 |
| MULTI_GEN=true | 是否允許多次同時(shí)生成密碼/短語(yǔ)密碼。設(shè)置為 true 表示允許。 |
| GENERATE_PP=true | 是否生成短語(yǔ)密碼。設(shè)置為 true 表示生成。 |
| ROBOTS_ALLOW=false | 是否允許搜索引擎爬蟲(chóng)訪問(wèn)該服務(wù)。設(shè)置為 false 表示不允許。 |
| GOOGLE_SITE_VERIFICATION='' | Google 站點(diǎn)驗(yàn)證代碼。這里為空表示未設(shè)置。 |
| DISABLE_URL_CHECK=false | 是否禁用 URL 安全性檢查。設(shè)置為 false 表示進(jìn)行檢查。 |
| BASE_PATH='' | 服務(wù)的基礎(chǔ)路徑。這里為空可能意味著根路徑 /。 |
5.4 創(chuàng)建pwgen容器
執(zhí)行以下命令,創(chuàng)建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容器狀態(tài)
檢查pwgen容器狀態(tài)狀態(tài),確保pwgen容器正常啟動(dòng)。
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服務(wù)正常運(yùn)行。
root@jeven01:/data/pwgen# docker compose logs pwgen | [2024-11-27 10:20:38 +0000] [1] [INFO] Starting gunicorn 23.0.0 pwgen | [2024-11-27 10:20:38 +0000] [1] [INFO] Listening at: http://0.0.0.0:5069 (1) pwgen | [2024-11-27 10:20:38 +0000] [1] [INFO] Using worker: uvicorn.workers.UvicornWorker pwgen | [2024-11-27 10:20:38 +0000] [7] [INFO] Booting worker with pid: 7 pwgen | [2024-11-27 10:20:38 +0000] [8] [INFO] Booting worker with pid: 8 pwgen | [2024-11-27 10:20:39 +0000] [7] [INFO] Started server process [7] pwgen | [2024-11-27 10:20:39 +0000] [7] [INFO] Waiting for application startup. pwgen | [2024-11-27 10:20:39 +0000] [7] [INFO] ASGI 'lifespan' protocol appears unsupported. pwgen | [2024-11-27 10:20:39 +0000] [7] [INFO] Application startup complete. pwgen | [2024-11-27 10:20:39 +0000] [8] [INFO] Started server process [8] pwgen | [2024-11-27 10:20:39 +0000] [8] [INFO] Waiting for application startup. pwgen | [2024-11-27 10:20:39 +0000] [8] [INFO] ASGI 'lifespan' protocol appears unsupported. pwgen | [2024-11-27 10:20:39 +0000] [8] [INFO] Application startup complete.

六、訪問(wèn)pwgen服務(wù)
6.1 訪問(wèn)pwgen首頁(yè)
訪問(wèn)地址:http://192.168.3.88:6500,將IP替換為自己服務(wù)器IP地址。如果無(wú)法訪問(wèn)到以下頁(yè)面,則檢查宿主機(jī)的防火墻是否關(guān)閉或者放行相關(guān)端口,云服務(wù)器則還需要設(shè)置安全組規(guī)則。

6.2 生成默認(rèn)密碼
生成的短語(yǔ)密碼遵循了以下規(guī)則:每個(gè)單詞首字母大寫(xiě)、包含數(shù)字、包含特殊字符,使用破折號(hào) - 作為分隔符,最大單詞長(zhǎng)度為7個(gè)字符,并且由4個(gè)單詞組成?;谶@些設(shè)定,生成的具體短語(yǔ)密碼示例為 Obeyed7#-Wins2;-Hamauls7:-Aptest5:。這個(gè)密碼結(jié)合了易于記憶的單詞與額外的安全元素(如數(shù)字和特殊字符),以增強(qiáng)其安全性。此外,該工具還提供了復(fù)制功能,方便用戶直接將生成的密碼粘貼到需要的地方。所有生成的密碼和短語(yǔ)密碼都會(huì)被交叉引用檢查,確保它們未曾在已知的數(shù)據(jù)泄露事件中出現(xiàn)過(guò),從而進(jìn)一步保障用戶賬戶的安全性。
- 生成安全密碼和短語(yǔ)密碼的要求
| 參數(shù) | 描述 |
|---|---|
| 包含大寫(xiě)字母 | 密碼中包含大寫(xiě)字母。 |
| 包含數(shù)字 | 密碼中包含數(shù)字。 |
| 包含特殊字符 | 密碼中包含特殊字符。 |
| 排除外觀相似的字符 | 密碼中不包含外觀相似的字符(例如:0 和 O, 1 和 l)。 |
| 長(zhǎng)度 | 密碼長(zhǎng)度為 12 個(gè)字符。 |
| 生成短語(yǔ)密碼 | 同時(shí)生成一個(gè)短語(yǔ)密碼。 |

七、總結(jié)
在部署實(shí)踐過(guò)程中,使用Docker容器化pwgen密碼生成器展現(xiàn)了其便捷性和靈活性。通過(guò)簡(jiǎn)單的Docker命令即可快速啟動(dòng)服務(wù),并利用環(huán)境變量輕松調(diào)整密碼生成規(guī)則,滿足不同場(chǎng)景下的安全需求。實(shí)際體驗(yàn)中,pwgen不僅提供了強(qiáng)大的密碼和短語(yǔ)密碼生成功能,還確保了生成的密碼經(jīng)過(guò)泄露數(shù)據(jù)庫(kù)檢查,增強(qiáng)了安全性。此外,友好的用戶界面設(shè)計(jì)和易于使用的復(fù)制功能極大地提升了用戶體驗(yàn),使得無(wú)論是個(gè)人還是企業(yè)用戶都能方便地管理自己的密碼安全。
到此這篇關(guān)于使用Docker部署pwgen簡(jiǎn)單密碼生成器的文章就介紹到這了,更多相關(guān)Docker部署pwgen密碼生成器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker部署golang http服務(wù)時(shí)端口無(wú)法訪問(wèn)的問(wèn)題解決
本文主要介紹了docker部署golang http服務(wù)時(shí)端口無(wú)法訪問(wèn)的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
Docker安裝MySQL及授權(quán)遠(yuǎn)程訪問(wèn)的詳細(xì)教程
Docker是一種流行的容器化平臺(tái),可以簡(jiǎn)化應(yīng)用程序的部署和管理,下面這篇文章主要給大家介紹了關(guān)于Docker安裝MySQL及授權(quán)遠(yuǎn)程訪問(wèn)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05
docker及docker-compose安裝,docker安裝Jenkins全過(guò)程
本文詳細(xì)介紹了在Linux系統(tǒng)上安裝Docker、Docker?Compose和Jenkins,并通過(guò)Jenkins自動(dòng)化部署項(xiàng)目的步驟,文中涵蓋了從卸載舊版本Docker到設(shè)置鏡像加速、安裝Jenkins、配置Jenkins插件以及通過(guò)Dockerfile構(gòu)建鏡像和啟動(dòng)容器的全過(guò)程2025-12-12
Docker容器中沒(méi)有vi/ps等命令問(wèn)題
這篇文章主要介紹了Docker容器中沒(méi)有vi/ps等命令問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
解決執(zhí)行docker daemon命令時(shí)出錯(cuò)的問(wèn)題
daemon 這是docker 操作中十分常用的命令指定項(xiàng),最近在運(yùn)行docker daemon命令卻發(fā)生了錯(cuò)誤,后來(lái)通過(guò)測(cè)試各種方法終于解決了,現(xiàn)在將方法分享給大家,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2016-11-11
詳解docker pull 下來(lái)的鏡像文件存放的位置
本篇文章主要介紹了詳解docker pull 下來(lái)的鏡像文件存放的位置,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-04-04
Docker部署UI自動(dòng)化測(cè)試環(huán)境的實(shí)現(xiàn)步驟
本文主要介紹了Docker部署UI自動(dòng)化測(cè)試環(huán)境的實(shí)現(xiàn)步驟,通過(guò)Docker可以快速創(chuàng)建、部署和測(cè)試腳本,提高測(cè)試效率,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
記 -bash: docker-compose: command not&nbs
這篇文章主要介紹了記 -bash: docker-compose: command not found 的問(wèn)題解決方法,本文給大家介紹的非常詳細(xì)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01
Docker部署HertzBeat實(shí)時(shí)監(jiān)控告警系統(tǒng)
HertzBeat是一款開(kāi)源的實(shí)時(shí)監(jiān)控告警系統(tǒng),本文就來(lái)介紹一下Docker部署HertzBeat實(shí)時(shí)監(jiān)控告警系統(tǒng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
dockerfile中su命令切換用戶激活環(huán)境,報(bào)錯(cuò)su: invalid option
本文主要介紹了dockerfile中su命令切換用戶激活環(huán)境以及報(bào)錯(cuò)su: invalid option -- ‘n‘的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2025-01-01

