当前位置: 首页 > news >正文

使用 Python GUI 工具创建安全的密码短语

在数字安全至关重要的今天,强密码是保护我们在线生活的第一道防线。但谁说安全的密码就不能既好记又有趣呢?我开发了一款基于 Python 和 wxPython 的 密码短语生成器,可以生成 Diceware 风格的随机单词短语以及充满奇思妙想的记忆性句子。无论你需要为账户设置一个强大的密码,还是需要一个易于记忆的短语作为加密密钥,这款工具都能满足你的需求。让我们来了解它的功能、使用方法以及为什么值得一试!

C:\pythoncode\new\passwordgenerator.py

密码短语生成器是什么?

这款工具是一个使用 wxPython 构建的图形用户界面(GUI)应用程序,提供两种生成模式:

  1. Diceware 模式:生成由随机单词组成的密码短语,类似经典的 Diceware 方法,适合创建高熵的密码。
  2. 句子模式:生成带有荒诞意象的记忆性句子,通过结合随机单词、动词、连接词和场景,创建既有趣又安全的短语。

工具使用 Python 的 secrets 模块确保加密级别的随机性,并支持加载外部单词表以增强安全性。界面直观,分为两个选项卡,分别对应两种模式,让用户可以轻松调整参数并生成结果。

主要功能

  • 加密级随机性:使用 secrets.SystemRandom 确保生成的密码短语具有高随机性,适合安全敏感的应用。
  • Diceware 模式
    • 支持自定义单词数量、分隔符、最小长度和首字母大写选项。
    • 显示每组短语的熵估计(以位为单位),帮助用户了解密码强度。
    • 支持加载外部单词表(UTF-8 编码,每行一个单词)。
  • 句子模式
    • 生成荒诞而有趣的句子,如“鲸鱼抱着气球在沙滩上一起跳舞42#”。
    • 支持用户输入提示词以个性化句子。
    • 确保句子长度达到指定最小值,并随机插入数字和符号以增强复杂度。
  • 图形界面:基于 wxPython 的选项卡界面,包含输入字段、生成按钮和只读文本区域,用于显示生成的短语或句子。
  • 错误处理:通过弹出窗口提示文件加载失败或无效输入等问题。

如何使用

准备工作

  1. 安装 wxPython
    在 Python 环境中运行以下命令安装 wxPython:
    pip install wxPython
    
  2. 保存代码
    将提供的代码保存为 passphrase_gui.py(代码链接:见文末)。确保 Python 3 环境可用。
  3. 可选:准备单词表
    默认使用内置的 50 个中文单词表(仅用于演示)。为提高安全性,建议准备一个包含数千个单词的 UTF-8 编码文本文件,每行一个单词。

运行程序

运行以下命令启动 GUI:

python passphrase_gui.py

程序将打开一个窗口,包含两个选项卡:“Diceware”和“句子”。

Diceware 模式
  1. 切换到“Diceware”选项卡。
  2. 设置参数:
    • 单词数量:选择短语包含的单词数(默认 5)。
    • 分隔符:输入单词间的分隔符(默认“-”)。
    • 单词表路径:输入外部单词表文件的路径(可选,留空使用默认单词表)。
    • 最小长度:设置短语的最小字符长度(默认 0)。
    • 首字母大写:勾选以使每个单词首字母大写。
    • 短语数量:选择要生成的短语数(默认 5)。
  3. 点击“生成密码短语”按钮。
  4. 结果将显示在下方文本区域,包括每组短语和熵估计。例如:
    鲸鱼-仙人掌-电梯-彩虹-风筝
    彗星-沙漏-灯塔-纸鹤-帐篷
    ...
    估计每组短语熵 ≈ 51.7 位(假设 50 个单词)
    
句子模式
  1. 切换到“句子”选项卡。
  2. 设置参数:
    • 提示词:输入空格分隔的单词(如“鲸鱼 仙人掌”),用于个性化句子(可选)。
    • 最小长度:设置句子的最小字符长度(默认 20)。
    • 句子数量:选择要生成的句子数(默认 5)。
  3. 点击“生成句子”按钮。
  4. 结果将显示在下方文本区域,例如:
    鲸鱼抱着气球沿着彩虹在沙滩上一起跳舞42#
    仙人掌背着风筝绕过帐篷在桥上一起吹泡泡19@
    ...
    

安全提示

  • 使用大单词表:内置的 50 个单词表仅用于演示,熵较低(约 51.7 位,5 个单词)。建议使用包含数千个单词的外部单词表(如 EFF 的 Diceware 单词表),以显著提高熵。
  • 检查环境变量:设置 DICEWARE_STRICT=1 环境变量以强制要求大单词表,否则程序会警告小单词表的安全风险。
  • 保护输出:生成的密码短语应妥善保存,避免泄露。

http://www.dtcms.com/a/320725.html

相关文章:

  • tmi8150b在VM=3.3v电压下,如何提高转速,记录
  • 高性能 Vue 应用运行时策略
  • 仓颉编程语言的match表达式
  • 《算法导论》第 12 章 - 二叉搜索树
  • 【量子计算】量子计算驱动AI跃迁:2025年算法革命的曙光
  • conda pip uv与pixi
  • SpringCloud(4)-多机部署,负载均衡-LoadBalance
  • ASP.NET三层架构成绩管理系统源码
  • HBase的异步WAL性能优化:RingBuffer的奥秘
  • 深度虚值期权合约有什么特点?
  • InfoNCE 损失
  • 企微消息机器人推送配置-windows+python
  • 【ros-humble】2.自定义通讯接口发布者python,qt使用(话题)
  • 关于csdn导入和导出
  • USB2.0协议学习-基础知识
  • day070-Jenkins自动化与部署java、前端代码
  • linux安装mysql8.0,二进制码安装
  • 《Graph machine learning for integrated multi-omics analysis》
  • ChipCamp探索系列 -- 1. Soft-Core RISC-V on FPGA
  • 【全栈自动驾驶与异构加速】系统学习计划
  • React 状态管理入门:从 useState 到复杂状态逻辑
  • 【MongoDB】查询条件运算符:$expr 和 $regex 详解,以及为什么$where和$expr难以使用索引
  • 使用pybind11封装C++API
  • HTML <picture> 元素:让图片根据设备 “智能切换” 的响应式方案
  • 数据结构(16)排序(上)
  • 时序数据库-涛思数据库
  • 6.Linux 系统上的库文件生成与使用
  • Linux 内核发包流程与路由控制实战
  • 医防融合中心-智慧化慢病全程管理医疗AI系统开发(上)
  • 後端開發技術教學(三) 表單提交、數據處理