Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
desktop-2fa — 一款用于生成和管理 TOTP 2FA 验证码的安全离线桌面应用程序。具备加密保险库存储、现代密码学(Argon2 + AES‑GCM)、模块化架构以及无云端依赖的本地优先方案。专为可靠性、可扩展性和未来的跨平台 UI 而设计。 | Kitploit
工具/GitHubGitHub/wrogistefan/desktop-2fa
通用工具加密/解密工具密码学隐私保护身份验证
GitHubwrogistefan/desktop-2fa

desktop-2fa

一款用于生成和管理 TOTP 2FA 验证码的安全离线桌面应用程序。具备加密保险库存储、现代密码学(Argon2 + AES‑GCM)、模块化架构以及无云端依赖的本地优先方案。专为可靠性、可扩展性和未来的跨平台 UI 而设计。

查看仓库
3016个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

🛡️ Desktop-2FA

一款面向桌面环境的安全离线双因素认证(2FA)管理器。基于 Python 构建,具备强加密特性且无云端依赖。

🌐 官方网站:desktop-2fa.org

PyPI - Downloads PyPI version Python versions License Build codecov


✨ 功能特性

功能描述
🔐 保险库安全使用 Argon2id 密钥派生的 AES-256-GCM 加密
⏱️ TOTP 生成符合 RFC 6238 的验证码生成
💻 完整 CLI用于管理令牌的完整命令行界面
📋 剪贴板支持自动将 TOTP 验证码复制到剪贴板
🔓 无状态设计每条命令都需要显式密码认证
🛡️ 密码策略使用 zxcvbn 强制执行可配置的密码强度要求
🧪 测试完善289 项测试全部通过,覆盖率全面
📖 安全模型详细的威胁分析与密码学设计文档

📸 截图

以交互方式添加条目 以交互方式添加新的 TOTP 条目

验证码生成 为某个条目生成 TOTP 验证码

重命名与重复错误 重命名条目并进行重复检测

版本与列表 查看版本信息并列出所有条目


🚀 快速开始

安装

root@kitploit:~
pip install desktop-2fa

验证安装:

root@kitploit:~
python -c "import desktop_2fa; print(desktop_2fa.__version__)"
# Output: 0.8.1dev

基本用法

root@kitploit:~
# Initialize a new vault
d2fa vault init

# Add a new TOTP token
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP

# List all entries
d2fa vault list

# Generate a code
d2fa code GitHub

非交互式用法

root@kitploit:~
# Provide password via command line
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP --password mypassphrase

# Provide password via file
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP --password-file /path/to/passphrase.txt

📁 保险库生命周期

保险库是一个加密存储文件,位于 ~/.desktop-2fa/vault。

创建保险库

当命令需要保险库但尚未存在时:

  1. CLI 会提示输入新密码(交互模式),或要求提供 --password/--password-file(非交互模式)
  2. 创建空的加密保险库
  3. 始终会打印一条确认消息: Vault created at <path>

加载保险库

当命令需要保险库且该保险库已存在时:

  1. CLI 会提示输入现有密码(交互模式),或要求提供凭据(非交互模式)
  2. 保险库被解密并加载
  3. 如果密码无效,CLI 将以 typer.Exit(1) 退出

重复条目处理

当多个条目与目标名称匹配时,rename 命令强制执行确定性行为:

  • 如果多个条目与提供的名称(issuer 或 account_name)匹配,则重命名会被中止
  • 错误消息:Error: Multiple entries named '<name>' exist. Operation aborted. Resolve duplicates first.
  • 在这种情况下,不会重命名任何条目
  • 此检查发生在任何修改之前

📖 CLI 命令

核心命令

保险库管理

全局选项


🔒 安全性

保险库使用:

  • AES-256-GCM 用于认证加密
  • Argon2id 用于密钥派生(time_cost=4, memory_cost=128MiB, parallelism=2)
  • zxcvbn 用于密码强度评估
  • 版本化头部用于前向兼容

每条命令都需要显式密码认证。不提供基于会话的访问。

密码强度评估

Desktop-2FA 在创建或更改保险库密码时使用 zxcvbn 评估密码强度:

  • 评分 0-2(弱):容易被猜到的密码(例如 "password123")
  • 评分 3-4(强):能够抵御常见攻击(推荐)

示例:

  • ❌ 弱:password、123456、qwerty、admin2024
  • ✅ 强:Battery-Horse-Staple-Correct、Mountain@River*2024、MySecureVault#42

配置(~/.config/d2fa/config.toml):

root@kitploit:~
[security]
# Require strong passwords (score >= 3)
reject_weak_passwords = false  # warn but allow | true: reject weak passwords

当 reject_weak_passwords = false 时:

  • 弱密码会触发黄色警告
  • 系统会提示用户确认是否继续
  • 密码接受过程为非阻塞式

当 reject_weak_passwords = true 时:

  • 弱密码会被立即拒绝
  • 命令以错误退出
  • 用户必须选择更强的密码

向后兼容性: 如果你的配置中设置了 min_password_entropy(旧版选项),它会被识别并视为等同于要求 zxcvbn 评分 >= 3。

安全加固(v0.8.0)

0.8.0 版本保留了 v0.7.3 中所有此前的安全加固措施,并引入了模块化架构以实现更好的代码隔离:

  • 空密码会立即被拒绝,并显示清晰的错误消息
  • 权限错误与保险库文件缺失被区分对待
  • 不会向用户显示 Python 堆栈跟踪
  • 针对文件系统权限问题提供用户友好的错误消息
  • 模块化设计将 CLI 与核心密码学组件分离,以增强安全边界
  • 基于 zxcvbn 的密码强度评估(v0.8.0 新增)

📚 文档

文档描述

🧪 测试

root@kitploit:~
pytest tests/              # Run all tests
pytest --cov=src/desktop_2fa  # Run with coverage

🏗️ 项目结构

root@kitploit:~
src/desktop_2fa/
├── app/           # Application components
├── cli/           # Command-line interface
├── crypto/        # Encryption utilities
├── totp/          # TOTP generation
├── ui/            # User interface components
├── vault/         # Vault management
└── utils/         # Utilities

📄 许可证

Apache License 2.0。请参阅 LICENSE 文件。


👤 作者

Łukasz Perek


🏆 赞助

desktop‑2fa 通过 Kilo OSS 赞助计划获得支持。


📧 联系方式

如有疑问或需要支持,请通过 [email protected] 联系我们


💖 支持本项目

Desktop‑2FA 是一款独立的开源工具,专注于自主性、透明性和离线安全。 如果你觉得它有用,并希望支持持续开发,可以通过以下平台进行支持:

  • Ko‑fi:https://ko-fi.com/lukaszperek
  • Buy Me a Coffee:https://buymeacoffee.com/lukaszperek
  • AirTM:https://airtm.me/lukper
下载工具
命令描述
d2fa vault add <name> <issuer> <secret>添加新的 TOTP 条目
d2fa vault list列出所有已存储的 TOTP 条目
d2fa vault rename <old> <new>重命名条目
d2fa vault remove <name>删除条目
d2fa code <name> [--copy|--copy-only]生成 TOTP 验证码并提供剪贴板复制选项
命令描述
d2fa vault init [--force]初始化新的保险库
d2fa vault unlock打开保险库并显示弱密码警告(如已配置)
d2fa vault change-password更改保险库密码
d2fa vault backup创建保险库的加密备份
d2fa vault export <path>将保险库导出到文件
d2fa vault import <path> [--force]从文件导入保险库
选项描述
--password <pwd>直接提供保险库密码
--password-file <path>从文件读取保险库密码
--json以 JSON 格式输出
--raw原始输出(无格式化)
--quiet抑制非必要输出
--copy将 TOTP 验证码复制到剪贴板并显示
--copy-only仅将 TOTP 验证码复制到剪贴板
--force强制执行操作(跳过确认)
用户手册完整使用指南
安全模型详细的威胁分析与密码学设计
CLI UX 规范UX 契约与行为
密码学安全实现细节