【Github】PwGen用户友好的Web应用密码生成器

news2024/11/23 12:19:15

弱密码问题一直是网络安全领域的一个重大挑战。许多人为了方便记忆,倾向于使用简单、常见的密码,如“123456”、“password”或者他们的生日等,这些密码很容易被猜测或通过暴力破解方法攻破。弱密码的使用大大增加了账户被黑客入侵的风险,可能导致个人信息泄露、财产损失甚至更严重的后果。一个强大的密码可以帮助保护我们的个人信息和网络资产免受未经授权的访问。虽然Linux系统中的pwgen命令行工具能够生成安全的随机密码,但它可能对于非技术用户来说不够直观和友好。为了解决这个问题,PwGen安全密码生成器应运而生,它是一个通过Docker部署的基于Web的应用程序,旨在为用户提供一个更加友好和易于使用的密码生成解决方案。

特性

  1. 用户友好的界面:提供了一个直观的界面,方便用户查看和复制生成的密码或短语。

  2. 安全检查:通过与haveibeenpwned数据库的API集成,确保生成的密码未被泄露,增强了密码的安全性。

  3. 离线模式:允许在没有外部API访问的环境下使用,适用于隔离网络或注重隐私保护的情况。

  4. 环境变量配置:用户可以通过环境变量自定义密码和短语生成的默认设置,便于快速生成符合特定要求的密码。

  5. 多重生成:支持同时生成多达5个密码或短语,提高了效率和便捷性。

  6. 渐进式Web应用(PWA):确保了跨设备的无缝体验,用户可以在不同的设备上方便地使用。

  7. 全面的密码生成选项:提供了包含大写字母、数字、特殊字符的密码生成选项,并可以选择排除容易混淆的字符。

  8. 灵活的短语生成:用户可以选择单词的首字母大写、分隔符类型以及是否包含数字或特殊字符。

在这里插入图片描述

官方提供了在线演示:https://pwgen.joonatanh.com

部署

docker cli 命令行部署,确保5069端口未被使用,如果有在使用可以使用其他未被使用的端口。

docker run -d \
  --name pwgen \
  -p 5069:5069 \
  -e MULTI_GEN=true \
  -e PW_LENGTH=12 \
  -e PW_INCLUDE_UPPERCASE=true \
  -e PW_INCLUDE_DIGITS=true \
  -e PW_INCLUDE_SPECIAL=true \
  -e PW_EXCLUDE_HOMOGLYPHS=true \
  --restart unless-stopped \
  jocxfin/pwgen:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  pwgen:
    image: jocxfin/pwgen:latest
    container_name: pwgen
    ports:
      - 5069:5069
    environment:
      - MULTI_GEN=true
      - PW_LENGTH=12
      - PW_INCLUDE_UPPERCASE=true
      - PW_INCLUDE_DIGITS=true
      - PW_INCLUDE_SPECIAL=true
      - PW_EXCLUDE_HOMOGLYPHS=true 
    restart: unless-stopped

然后执行下面的命令:

# 新建文件夹 pwgen 并进入 pwgen 目录
mkdir -p ./pwgen && cd ./pwgen

# 将上面的 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

使用

在浏览器中输入 http://IP:5069 (IP是Docker宿主机的IP) 就能看到主界面
在这里插入图片描述

安全密码

  • Include Uppercase Letters:包含大写字母
  • Include Digits:包含数字
  • Include Special Characters:包含特殊字符
  • Exclude Homoglyphs: 排除容易混淆的字符
  • Length:生成的密码长度

前四项为开关项,可根据需要启用或关闭,每次开关,或者点 Generate 会生成新的密码
在这里插入图片描述

密码短语

开启 Generate Passphrase 后,会生成密码短语

  • Capitalize Words:大写单词
  • Include Numbers:包含数字
  • Include Special Characters:包含特殊字符
  • Language:支持英语/芬兰语/自定义列表
  • Separator:分隔符,支持下面几种模式:
    • Dash:使用破折号作为分隔符或添加到密码短语的特定位置
    • Random Number:表示在密码中插入一个随机生成的数字
    • Random Special Character:表示在密码中插入一个随机生成的特殊字符,例如 !@#$%^&* 等
    • Space : 使用空格作为分隔符或添加到密码短语的特定位置
    • User Defined:表示用户可以自定义密码生成模式中的某些元素,例如指定特定的单词、符号、数字等
  • Max Word Length:最大单词长度
  • Word Count:单词数量

结语

PwGen安全密码生成器为用户提供了一个简单、安全且易于使用的方式来生成和管理他们的密码。无论你是技术专业人士还是普通用户,都可以从PwGen的便捷性和强大的功能中受益。通过使用PwGen,你可以确保自己的密码强度和安全性,从而更好地保护自己的数字生活。

参考文档

jocxfin/pwgen: Simple self hosted password generator
地址:https://github.com/jocxfin/pwgen
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1590231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【深入解析spring cloud gateway】13 Reactive Feign的使用

问题引入 在gateway中如果使用feignClient的话,会报如下错误 java.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking, which is not supported in thread reactor-http-nio-3at reactor.core.publisher.BlockingSingleSubscriber.bloc…

C++实现一个自定义字符串类(string)

本博客将详细介绍如何在C中实现一个自定义的字符串类 string,这个类模仿了标准库中 std::string 的关键功能。这个过程将涵盖从声明到定义的每一步,重点介绍内存管理、操作符重载以及提供一些关键的实现细节。 首先:我们采用函数的声明与定义…

python--字符串对象和

1、找出10000以内能被5或6整除,但不能被两者同时整除的数(函数) def Divisible_by_5_6(x:int)->list:arr[]for i in range(1,x1):if (i % 5 0 or i % 6 0 ):if i % 5 0 and i % 6 0:continue #利用continue跳过能被5和6整除的数else:a…

Spring Boot 学习(4)——开发环境升级与项目 jdk 升级

各种版本都比较老,用起来也是常出各样的问题,终于找到一个看来不错的新教程,是原先那个教程的升级。遂决定升级一下开发环境,在升级遇到一些问题,摸索将其解决,得些体会记录备查。 最终确定开发环境约束如下…

ActiveMQ 01 消息中间件jmsMQ

消息中间件之ActiveMQ 01 什么是JMS MQ 全称:Java MessageService 中文:Java 消息服务。 JMS 是 Java 的一套 API 标准,最初的目的是为了使应用程序能够访问现有的 MOM 系 统(MOM 是 MessageOriented Middleware 的英文缩写&am…

QLoRa 低秩分解+权重量化的微调

QLoRa的核心思想是首先使用低秩分解技术降低参数的数量,然后对这些低秩表示的参数应用量化技术,进一步减少所需的存储空间和计算量。 https://arxiv.org/abs/2305.14314 低秩分解 低秩分解(Low-Rank Factorization):…

Elasticsearch初步了解学习记录

目录 前言 一、ElasticSearch是什么? 二、使用步骤(python版) 1.引入包 2.连接数据库 3.创建索引 4.写入数据 5.查询数据 三、相关工具介绍 1.ES浏览器插件 总结 前言 随着数据量的不断增加,传统的查询检索在速度上遇…

Android使用shape属性绘制边框内渐变色

目录 先上效果图实现方法shape属性介绍代码结果 先上效果图 这是使用AndroidStudio绘制的带有渐变色的边框背景色 实现方法 项目中由于UI设计需求,需要给按钮、控件设置带有背景色效果的。以下是UI效果图。 这里我们使用shape属性来绘制背景效果。 shape属性介…

机器学习-09-图像处理02-PIL+numpy+OpenCV实践

总结 本系列是机器学习课程的系列课程,主要介绍机器学习中图像处理技术。 参考 【人工智能】PythonOpenCV图像处理(一篇全) 一文讲解方向梯度直方图(hog) 【杂谈】计算机视觉在人脸图像领域的十几个大的应用方向&…

清远某国企IBM服务器Board故障上门维修

接到一台来自广东清远市清城区某水利大坝国企单位报修一台IBM System x3650 M4服务器无法开机的故障,分享给大家,同时也方便有需要的朋友能及时找到我们快速解决服务器问题。 故障服务器型号:IBM System x3650 M4 服务器使用单位:…

只要0.74元的双通道数字隔离器,1T1R,增强型ESD-3.0 kV ,150Kbps数字隔离器

前言: 做和电源打交道的设备,通信时非常危险,一定要使用隔离的USB-232转换器,或者你设备的串口与市电直连的设备通信时,现在需要使用数字隔离器,早期的一般都使用光耦,在这种情况下,速度不搞的…

正则表达式:量词(三)

正则表达式中的量词有以下几种:1. *: 匹配前面的字符0次或多次。2. : 匹配前面的字符1次或多次。3.?: 匹配前面的字符0次或1次。4. {n}: 匹配前面的字符恰好n次。5. {n,}: 匹配前面的字符至少n次。6. {n,m}:匹配前面的字符至少n次,但不超过m次。 以下是使用Python的…

Unity TextMeshProUGUI 获取文本尺寸·大小

一般使用ContentSizeFitter组件自动变更大小 API 渲染前 Vector2 GetPreferredValues(string text)Vector2 GetPreferredValues(string text, float width, float height)Vector2 GetPreferredValues(float width, float height) 渲染后 Vector2 GetRenderedValues()Vector…

idea 卡怎么办

设置内存大小 清缓存重启 idea显示内存全用情况 右下角

解决CSS中鼠标移入到某个元素其子元素被遮挡的问题

我们在开发中经常遇到一种场景,就是给元素加提示信息,就是鼠标移入到盒子上面时,会出现提示信息这一功能,如果我们给盒子加了hover,当鼠标移入到盒子上时,让他往上移动5px,即transform: transla…

网盘——搜索用户

目录 1、搜索用户 1.1、在friend.h里面定义槽函数 1.2、关联槽函数 1.3、搜索用户的时候,会弹出一个对话框来,在friend.cpp里面引入下面的头文件,专门用来输入数据的 1.4、获取输入信息,并使用Qstring来接收它 1.5、将上述代码打包&…

AR地图导览小程序是怎么开发出来的?

在移动互联网时代,AR技术的发展为地图导览提供了全新的可能性。AR地图导览小程序结合了虚拟现实技术和地图导航功能,为用户提供了更加沉浸式、直观的导览体验。本文将从专业性和思考深度两个方面,探讨AR地图导览小程序的开发方案。 编辑搜图 …

时间复杂度详解2——时间复杂度的计算

时间复杂度基本计算规则: 基本操作即只有常数项,认为其时间复杂度为O(1)顺序结构,时间复杂度按加法进行计算循环结构,时间复杂度按乘法进行计算分支结构,时间复杂度取最大值判断一个算法效率时,往往只需要…

HubSpot如何通过自动化和优化客户服务流程?

在当今竞争激烈的市场环境中,提供卓越的客户服务体验已经成为企业赢得客户忠诚、推动业务增长的关键所在。HubSpot,作为一款领先的客户关系管理软件,通过自动化和优化客户服务流程,为企业带来了革命性的服务体验提升。 HubSpot通…

对LSTM的通俗易懂理解--可变权重

RNN的问题:长期依赖,即对短期的数据敏感,对比较远的长期数据不敏感,这是因为RNN隐藏状态权重在不同时刻是共享相同的,随着时间步的增加,梯度会指数级地衰减或者增长,导致梯度消失或者爆炸&#…