Project Icon

paper-age

Age格式加密的纸质备份工具

PaperAge 是一款基于 Age 加密格式的开源纸质备份工具,专为安全存储小型秘密信息而设计。该工具可从文件或标准输入加密数据,生成含加密二维码的 PDF 文件,支持 A4 和信纸尺寸。PaperAge 通过优化二维码纠错级别和隐藏密码,确保在不受信任的打印环境下使用安全。主要应用于备份双因素认证恢复码等敏感数据,为需要离线存储方案的用户提供了简便而安全的选择。

PaperAge

使用Age格式(age-encryption.org/v1)轻松安全地备份(小型)机密信息到纸质文档。

Rust构建 codecov GitHub发布(最新语义化版本) Crates.io

特性

  • 接受来自文件或标准输入的输入
  • 使用密码对输入进行加密
  • 输出包含加密密文二维码的PDF文件
  • 支持A4和信纸尺寸
  • 优化二维码的纠错级别(较少数据→更高纠错能力)
  • 密码不会显示在PDF上,因此可以在不受信任的打印机上打印(例如在工作场所或图书馆)
  • 恢复备份时无需使用PaperAge:使用任何二维码扫描器和任何Age实现即可。

局限性

  • 由于二维码无法编码任意大小的有效载荷,最大输入大小约为1.9 KiB
  • 目前仅支持基于密码的加密

威胁模型和使用场景

  • 主要用于保存机密信息,如双因素认证恢复码
  • 手动添加密码允许使用公共打印机,例如图书馆、办公室、复印店等
  • 为了额外保护,可以记住密码或将其与打印件分开存储
  • 即使密码就在旁边,扫描和解密的需求也能防止简单的对手(普通窃贼不会关心你的Mastodon账户)
  • 如果需要防范国家级或其他高级威胁,请寻找其他解决方案

示例

这是输出PDF的样子(或者查看信纸版本)。二维码可以轻松使用iPhone(或任何现代智能手机)读取。

A4纸张,标题为'PaperAge',包含二维码和PEM编码部分

如果你想自己尝试解码,密码是snakeoil

安装

发布版本可用于macOS(Apple Silicon和Intel)、Linux(ARM和x86-64)和Windows(x86-64)。

虽然Windows版本应该可以在Windows 10和11上运行,但只有Windows 11是"官方"支持的。

Homebrew

添加PaperAge Tap以使用Homebrew安装最新版本:

brew tap matiaskorhonen/paper-age
brew install paper-age

二进制文件

Releases页面下载最新版本,解压文件,并将paper-age二进制文件安装到PATH中的某个位置(例如/usr/local/bin)。

# 下载最新版本(选择你的操作系统)
# macOS(Intel或Apple Silicon):
curl -Lo paper-age.tar.gz https://github.com/matiaskorhonen/paper-age/releases/download/v1.3.3/paper-age-universal-apple-darwin.tar.gz
# Linux(x86-64):
curl -Lo paper-age.tar.gz https://github.com/matiaskorhonen/paper-age/releases/download/v1.3.3/paper-age-x86_64-unknown-linux-gnu.tar.gz
# Linux(ARM):
curl -Lo paper-age.tar.gz https://github.com/matiaskorhonen/paper-age/releases/download/v1.3.3/paper-age-aarch64-unknown-linux-gnu.tar.gz

# 使用GitHub CLI工具验证工件证明(可选)
gh attestation verify paper-age.tar.gz --repo matiaskorhonen/paper-age

# 解压文件
tar -xf paper-age.tar.gz

# 将二进制文件安装到/usr/local/bin
sudo install paper-age /usr/local/bin/
# 或者:sudo mv paper-age /usr/local/bin/

Cargo

如果您已经安装了 Rust,可以使用 Cargo 安装 PaperAge:

cargo install paper-age

构件认证

从 v1.3.1 版本开始,PaperAge 发布版本具有构件认证。认证是使用 GitHub 的工具生成的。

使用方法

paper-age [选项] [输入]

参数

  • <输入> — 要读取的文件路径。默认为标准输入。最大约 1.9KB。

选项

  • -t, --title <标题> — 页面标题(最多 64 个字符)

    默认值:PaperAge

  • -n, --notes-label <备注标签> — 二维码下方的备注标签(最多 32 个字符)

    默认值:密码:

  • --skip-notes-line — 跳过备注占位行(例如 密码:________)

  • -o, --output <输出> — 输出文件名。使用 - 表示标准输出。

    默认值:out.pdf

  • -s, --page-size <页面大小> — 纸张大小 [默认:a4] [可选值:a4, letter]

  • -f, --force — 如果输出文件已存在,则覆盖

  • -g, --grid — 绘制网格样式以调试布局问题

  • --fonts-license — 打印嵌入字体的许可证

  • -v, --verbose... — 每次出现增加输出详细程度

  • -q, --quiet... — 每次出现减少输出详细程度

  • -h, --help — 打印帮助信息

  • -V, --version — 打印版本信息

备注/密码字段

二维码下方的备注字段可以通过 --notes-label <文本>--skip-notes-line 参数自定义。标签长度没有强制限制,但最终文本会超出页面边界。

示例

  • 打印提示占位符而不是密码:

    paper-age --notes-label="提示:"
    
  • 打印时间戳而不是备注字段:

    paper-age --notes-label="创建时间:$(date -Iseconds)" --skip-notes-line
    

压缩

PaperAge 完全不关心输入文件的类型。如果需要压缩更多数据,可以在将文件传递给 PaperAge 之前对其进行压缩,例如:

gzip --best --stdout in.txt | paper-age --output=compressed.pdf --title="in.txt.gz"

压缩比因输入数据而异,是否值得这样做取决于您。

扫描二维码

在 iOS 上,最好使用控制中心的"扫码"而不是相机应用。"扫码"可以将二维码内容复制到剪贴板,而不仅仅是搜索它。

在 Android 上,内置相机应用应该可以将二维码内容复制到剪贴板。Google 镜头应用似乎也可以正常工作。

开发

假设您已经安装了 Rust,从 git 本地运行最新版本:

  1. 拉取此仓库
  2. 运行测试:cargo test
  3. 获取帮助:cargo run -- -h
  4. 从标准输入加密:echo "Hello World" | cargo run -- --title="来自标准输入的秘密" --out="stdin.pdf"
  5. 以最大详细程度运行:echo "Hello World" | cargo run -- -vvvv

发布

当 git 中标记新版本时,会在 GitHub 上编译和发布。

使用 cargo release 标记和发布新版本,例如:

cargo release 1.2.3

⚠️ 在命令后附加 --execute 以实际执行发布。

许可证和致谢

PaperAge 根据 MIT 许可证发布。详情请参阅 LICENSE.txt。

包含 SIL 开放字体许可的 IBM Plex Mono 字体。请参阅 IBMPlexMono-LICENSE.txt。

使用来自 github.com/str4d/rage 的 Age 的 Rust 实现和 printpdf 库。

感谢 Ariel Salminen 提供 PaperAge 图标。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号