#password-generator #totp #word-list #note #password-manager #notes #encryption

bin+lib blackout

使用 Rust 编写的加密 TOTP 和密码/笔记管理器

4 个版本 (1 个稳定版)

1.0.0 2024 年 8 月 7 日
0.1.2 2024 年 6 月 4 日
0.1.1 2024 年 5 月 27 日
0.1.0 2024 年 5 月 27 日

#2 in #note

Download history 243/week @ 2024-05-27 125/week @ 2024-06-03 8/week @ 2024-06-10 22/week @ 2024-07-01 124/week @ 2024-08-05

每月 124 次下载

GPL-3.0 许可证

2.5MB
2.5K SLoC

blackout

使用 Rust 编写的加密密码/笔记和 TOTP 管理器

✨ 特性

  • ⌨ 基于命令行界面(交互式 & 参数)
  • 🔒 加密密码/笔记管理器
    • 🛡 隐藏敏感信息
  • 🔒 加密 TOTP 管理器
  • 🔑 生成密码和短语
  • 🌱 生成种子短语(bip-39 单词列表)
  • 自定义文本编辑器以管理笔记(vim,nano,记事本等)
  • 设置中提供自动备份
  • 自动将生成的密码/短语复制到剪贴板(默认禁用)

📥 安装

blackout 可以从 crates.io 安装。

cargoinstall blackout

二进制文件

您可以从 发布页面 下载预构建的二进制文件。

编译源代码

先决条件

构建

git clone https://github.com/jandrus/blackout.git
cargo build --release

这将生成一个二进制可执行文件,位于 target/release/blackout,您可以将其复制到您的 $PATH 目录中。

⚙ 配置

配置文件

注意:如果启动时配置文件不存在,将提示用户进行引导式生成。

位置

配置文件位于

OS 配置文件位置
Linux $HOME/.config/blackout/config.toml
Windows C:\Users\USERNAME\AppData\Roaming\ash\blackout\config\config.toml
macOS /Users/USERNAME/Library/Application Support/io.ash.blackout\config.toml

配置选项

  • color:这允许在终端中输出彩色输出。这是推荐的。注意:color 设置为 false,图标将被禁用。
  • editor:这是用于向用户渲染编辑器以输入笔记的命令。
  • banner:无参数时默认为交互模式。 banner 启用启动时的横幅消息。
  • auto_copy:启用/禁用生成的密码和密语在生成时自动复制到剪贴板。
  • icons:启用/禁用图标。注意:这需要 nerdfonts
  • autobackup:启用/禁用在添加或编辑笔记/totp URL时自动备份 blackout 数据。

以下是一个示例配置。

color = true
editor = "vim"
banner = true
auto_copy = false
icons = true
autobackup = true

单词表

启动时,将下载文件 https://raw.githubusercontent.com/bitcoin/bips/master/bip-0039/english.txt 到上述配置目录,命名为 wordlist.txt。这是一个用于钱包种子短语生成的 2048 个单词列表。

当被指示生成一个密语时,blackout 将从这个列表中随机选择给定数量的单词。任何添加到此文件的单词都可以被密语和种子短语生成器选择。条目必须在一行上(不是逗号分隔列表,不是空格分隔列表)。

🛡️ 安全性

加密

blackout 使用 SQLCipher,它是 SQLite 的分支,增加了数据库文件和其它安全特性的 256 位 AES 加密,如

  • 即时加密
  • 篡改检测
  • 内存清理
  • 强密钥推导
  • 由同行评审的 OpenSSL 加密库提供的算法

用法

一般

blackout - Encrypted password/notes and totp manager

Usage: blackout [OPTIONS] [COMMAND]

Commands:
  add, -A       Add note or totp url
  delete, -D    Delete note or totp url
  edit, -E      Edit note or totp url
  export, -X    Export note or totp urls
  fetch, -F     Fetch notes or totp
  generate, -G  Generate password, passphrase, or seed phrase
  list, -L      List note or totp labels only
  help          Print this message or the help of the given subcommand(s)

Options:
  -b, --backup      Backup blackout data (saves a snapshot)
  -c, --changepass  Change master blackout password
  -r, --restore     Restore blackout backup
  -h, --help        Print help
  -V, --version     Print version

添加笔记或 totp URL

Add note or totp url

Usage: blackout {add|-A} [COMMAND]

Commands:
  note, -N  Add note
  totp, -T  Add TOTP url
  help      Print this message or the help of the given subcommand(s)

Options:
  -h, --help  Print help

示例

  • blackout addblackout -A:交互式添加笔记或 totp URL。
  • blackout add noteblackout -AN:通过提示添加笔记。
  • blackout add totpblackout -AT:通过提示添加 totp URL。

删除笔记或 totp URL

Delete note or totp url

Usage: blackout {delete|-D} [COMMAND]

Commands:
  note, -N  Delete note
  totp, -T  Delete totp
  help      Print this message or the help of the given subcommand(s)

Options:
  -h, --help  Print help

示例

  • blackout deleteblackout -D:交互式删除笔记或 totp URL。
  • blackout delete noteblackout -DN:交互式删除笔记。
  • blackout delete totp githubblackout -DT github:删除标签为 github 的 totp URL。

编辑笔记或 totp URL

Edit note or totp url

Usage: blackout {edit|-E} [COMMAND]

Commands:
  note, -N  Edit note
  totp, -T  Edit totp url
  help      Print this message or the help of the given subcommand(s)

Options:
  -h, --help  Print help

示例

  • blackout editblackout -E:交互式编辑笔记或 totp URL。
  • blackout edit totpblackout -ET:交互式编辑 totp URL。
  • blackout edit note githubblackout -DN github:编辑标签为 github 的笔记。

导出数据以进行迁移或解析

⚠ 注意:对于迁移到新机器,不需要移动明文数据。默认行为是将加密的数据库复制到当前工作目录(CWD),数据保持加密。使用 json 或 toml 标志导出数据以用于其他程序。

Export note or totp urls

Usage: blackout {export|-X} [COMMAND]

Commands:
  both, -B   Export notes and totp url
  notes, -N  Export notes
  totps, -T  Export totp urls
  help       Print this message or the help of the given subcommand(s)

Options:
  -h, --help  Print help

示例

  • blackout exportblackout -X:交互式导出数据为 json、toml 或 DB 格式
  • blackout export notesblackout -XN:以交互方式导出json、toml或DB格式的笔记
  • blackout export notes -jblackout -XNj:以json格式导出笔记
  • blackout export totps -tblackout -XTt:以toml格式导出totp网址
  • blackout export both -jblackout -XBj:以json格式导出笔记和totp网址

获取笔记/totp代码(在终端显示笔记或totp代码)

Fetch notes or totp

Usage: blackout {fetch|-F} [COMMAND]

Commands:
  note, -N  Fetch note
  totp, -T  Fetch TOTP
  help      Print this message or the help of the given subcommand(s)

Options:
  -h, --help  Print help

示例

  • blackout fetchblackout -F:以交互方式获取笔记或totp代码
  • blackout fetch noteblackout -FN:以交互方式获取笔记
  • blackout fetch totp githubblackout -FT github:获取标记为 github 的totp代码

生成密码、短语或种子短语

Generate password, passphrase, or seed phrase

Usage: blackout {generate|-G} [COMMAND]

Commands:
  pass, -W    Generate password
  phrase, -P  Generate passphrase (BIP-39 word list)
  seed, -S    Generate 24 word seed phrase (BIP-39 word list)
  help        Print this message or the help of the given subcommand(s)

Options:
  -h, --help  Print help

生成密码

Generate password

Usage: blackout generate {pass|-W} [OPTIONS]

Options:
  -l, --length <LENGTH>  length of password. Interactive allows for more options [DEFAULT: 15]
  -i, --interactive      Interactive mode
  -h, --help             Print help

示例

  • blackout generate passblackout -GW:生成一个15个字符的密码,包含数字、大小写字母和特殊字符。
  • blackout generate pass -iblackout -GWi:以交互方式生成密码。
  • blackout generate pass -l 18blackout -GWl 18:生成一个18个字符的密码。

生成短语

Generate passphrase (BIP-39 word list)

Usage: blackout generate {phrase|-P} [OPTIONS]

Options:
  -l, --length <NUM_WORDS>  Number of random words to generate [DEFAULT: 5]
  -h, --help                Print help

示例

  • blackout generate phraseblackout -GP:生成一个5个单词的短语。
  • blackout generate phrase -l 8blackout -GPl 8:生成一个8个单词的短语。

生成种子短语

Generate 24 word seed phrase (BIP-39 word list)

Usage: blackout generate {seed|-S}

Options:
  -h, --help  Print help

列出笔记或totp(仅标签)

这将只列出标签。要获取敏感内容(totp网址和笔记)的完整列表,请参阅 [[导出数据以进行迁移或解析]]。

List note or totp labels only

Usage: blackout {list|-L} [COMMAND]

Commands:
  notes, -N  List note lables
  totps, -T  List TOTP labels
  help       Print this message or the help of the given subcommand(s)

Options:
  -h, --help  Print help

示例

  • blackout listblackout -L:列出笔记和totp标签
  • blackout list notesblackout -LN:列出笔记标签
  • blackout list totpsblackout -LT:列出totp标签

捐赠

  • BTCbc1qvx8q2xxwesw22yvrftff89e79yh86s56y2p9x9
  • XMR84t9GUWQVJSGxF8cbMtRBd67YDAHnTsrdWVStcdpiwcAcAnVy21U6RmLdwiQdbfsyu16UqZn6qj1gGheTMkHkYA4HbVN4zS

许可证

本程序是免费软件:您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它,无论是许可证的第3版,还是任何后续版本。

本程序是在希望它将是有用的前提下分发的,但没有任何保证;甚至没有关于适销性或针对特定目的的隐含保证。有关详细信息,请参阅GNU通用公共许可证。

您应该已收到一份GNU通用公共许可证副本。如果没有,请参阅 http://www.gnu.org/licenses/

依赖关系

~31–51MB
~873K SLoC