#保险库 #加密密钥 #跨平台 #加密 #安全 #开源

app estash

一个开源的、跨平台的、用 Rust 编写的加密数字保险库(存储文件和文本),具有设置路径的能力,点击按钮即可将该文件的内容复制到该文件

1 个不稳定版本

0.6.2 2022 年 12 月 14 日

#629GUI

GPL-3.0-only

4MB
3.5K SLoC

Contributors Forks Stargazers Issues MIT License


EStash

EStash 是一个开源的、跨平台的、用 Rust 编写的加密数字保险库(存储文件和文本),具有设置路径的能力,点击按钮即可将该文件的内容复制到该文件。例如,安全地存储您的 SSH 密钥,将您的保险库放在类似 GitHub dotfiles 的位置,在另一台机器上下载它并轻松安装这些密钥。
报告错误 | 请求功能

目录
  1. 关于项目
  2. 入门
  3. 使用方法
  4. 路线图
  5. 贡献
  6. 许可证
  7. 联系方式

关于项目

  • 一个开源的、用 Rust 编写的、加密的数字保险库(存储文件和文本),具有设置路径的能力,点击按钮即可将该文件的内容复制到该文件。例如,安全地存储您的 SSH 密钥,将您的保险库放在类似 GitHub dotfiles 的位置,在另一台机器上下载它并轻松安装这些密钥。
  • 该保险库使用从您的密码派生的密钥(您密码的强度决定了您保险库的安全性)使用 argon2id 进行加密,该密钥用于加密私钥。加密算法使用的是 ECIES,结合了 X25519 Diffie-Hellman 函数和 XChaCha20Poly1305。(出于对未来兼容性的考虑,我使用了一个 ECIES,因为没有安全缺点)
  • 其工作方式是使用 blake3 对您的保险库名称进行哈希处理。密码不会存储,但使用 argon2id 从您的密码生成一个 32 字节的密钥,使用一些非常强大的选项,并使用此密钥加密保险库的私钥加密密钥(来自 ECIES)。如果您成功解密私钥并且保险库名称存在,则可以登录到保险库。保险库中的所有内容都使用该保险库的密钥对进行加密,基本上没有任何内容泄露。

视频展示

https://user-images.githubusercontent.com/59087558/206248579-a786b277-b0fc-4306-be50-9db1c948e901.mp4

构建方式

使用标准库和这些出色的第三方库

  • BLAKE3 哈希函数,比 sha2 快得多,且更安全。
  • rust-argon2 从密码中派生加密密钥。
  • rand 随机数生成器和其他随机功能。
  • rand_hc HC128 随机数生成器。
  • zeroize 使用简单的特质安全地从内存中清除机密信息。
  • crypto_box ECIES,结合了 X25519 Diffie-Hellman 函数和 XChaCha20Poly1305。
  • chacha20poly1305 简单、快速且强大的 AEAD 加密算法。
  • sled 轻量级高性能纯 Rust 事务嵌入式数据库。
  • Serde 一个通用的序列化/反序列化框架。
  • serde_json JSON 序列化文件格式。
  • FLTK FLTK GUI 库的 Rust 绑定。
  • dirs 一个小巧的低级库,提供特定平台的标准化位置。

入门

运行程序


Windows

便携式 EXE

  1. 转到 版本标签 并下载 estash-windows.exe 文件(可能需要点击显示全部)。
  2. 双击您刚刚下载的 exe 文件,程序即可运行。
  3. 如果您对它的一些内容不理解,可以查看 使用标签

安装程序

  1. 转到 版本标签 并下载 estash-windows-installer.exe 文件(可能需要点击显示全部)。
  2. 双击安装程序,就像使用任何其他安装程序一样进行操作。
  3. 现在,在开始菜单中(或者在您勾选了创建桌面快捷方式的情况下,在桌面上)您将看到一个 estash 快捷方式,就像运行任何其他程序一样运行它。
  4. 如果您对它的一些内容不理解,可以查看 使用标签

Linux

便携式二进制文件

  1. 转到 版本标签 并下载 estash-linux 文件。
  2. 双击您刚刚下载的二进制文件,程序即可运行。
  3. 如果您对它的一些内容不理解,可以查看 使用标签

AppImage

  1. 转到 版本标签 并下载 estash-linux.AppImage 文件。
  2. 双击您下载的 AppImage,程序即可运行。如果您还没有,您可能需要安装 AppImageLauncher,当您启动 AppImage 时,您将收到提示,询问是否要集成并运行它。如果您这样做,它将像安装程序一样出现。
  3. 如果您对它的一些内容不理解,可以查看 使用标签

AUR

这些包是:estash(用于稳定版)、estash-bin(用于预编译)和 estash-git(用于编译最新源代码)

a. 如果您有一个 AUR 管理器(如 paruyay,您应该有)

  1. 就像使用任何其他 AUR 包一样,选择您喜欢的类型,例如可以运行以下命令。
paru -Sy estash
  1. 在您的应用启动器中搜索 estash 并启动它。
  2. 如果您对它的一些内容不理解,可以查看 使用标签

b. 从 AUR 手动克隆和构建它

  1. 首先安装基本构建依赖项,如果您还没有安装的话
sudo pacman -Sy gcc base-devel --needed
  1. 然后克隆构建脚本
git clone https://aur.archlinux.org/estash.git # or estash-bin & estash-git
  1. 进入新克隆的仓库,并运行以下命令以构建包
makepkg
  1. 为了安装包,运行以下命令(其中 * 是任意字符的占位符)
sudo pacman -U estash-*.pkg.tar.zst

Nix 文件

您正在使用 NixOS,别担心,我已经为您准备好了。

  1. 转到版本标签页,并下载estash-linux.nix文件。
  2. 如果您使用 flakes,将其放在您的 pkgs 文件夹中,并在顶部添加您的标签(例如my)。如果没有,只需将代码添加到您的 default.nix 文件中,然后以这种方式安装。
  3. 如果您对它的一些内容不理解,可以查看 使用标签

Deb 文件

您应该使用应用程序映像。这不会提供桌面文件,您需要从命令行运行它。这里只是作为另一种需要时的方式。我会尝试创建一个 ppa。

  1. 转到版本标签页,并下载estash-linux.deb文件。
  2. 在您的下载文件夹中打开终端,并运行以下命令
sudo dpkg -i estash-linux.deb
  1. 在终端中运行estash,那么应用程序就出现了。
  2. 如果您对它的一些内容不理解,可以查看 使用标签

Arch 包文件

您不应该使用这种方法,而是安装 estash-bin AUR 软件包。这里只是作为另一种需要时的方式。

  1. 转到版本标签页,并下载estash-linux.pkg.tar.zst文件。
  2. 在您的 Arch Linux 命令行中运行以下命令
sudo pacman -U estash-linux.pkg.tar.zst
  1. 在您的应用启动器中搜索 estash 并启动它。
  2. 如果您对它的一些内容不理解,可以查看 使用标签

MacOS

便携式二进制文件

  1. 转到版本标签页,并下载estash-macos文件。
  2. 双击您刚刚下载的二进制文件,程序即可运行。
  3. 如果您对它的一些内容不理解,可以查看 使用标签

应用程序文件夹

便携式二进制文件非常相似,唯一的真正区别是它有一个图标。

  1. 转到版本标签页,并下载estash-macos-app.tar.gz文件。
  2. 使用您的归档管理器或在终端中运行以下命令
tar -xzf estash-macos-app.tar.gz
  1. 双击您刚刚下载的应用程序文件夹,那么程序就可以运行了。
  2. 如果您对它的一些内容不理解,可以查看 使用标签

DMG 安装程序

就像您使用的任何其他 dmg 安装程序一样。

  1. 转到版本标签页,并下载estash-macos-installer.dmg文件。
  2. 双击运行 dmg。
  3. 将应用程序文件夹拖到应用程序文件夹中。
  4. 完成了,您已经安装了应用程序,现在应该可以在启动器中看到它。
  5. 如果您对它的一些内容不理解,可以查看 使用标签

Homebrew

注意这种方法不包含桌面条目。您需要运行estash命令或自己创建快捷方式,这非常简单。

  1. 您需要安装homebrew,如果没有安装,请运行以下命令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 您需要添加我的 tap 仓库,为此请运行以下命令
brew tap Obscurely/tap
  1. 安装软件包。
brew install estash
  1. 如果您对它的一些内容不理解,可以查看 使用标签

所有平台

此方法适用于任何 Linux 发行版、Windows 10/11 和 macOS(已测试 Big Sur+)。

  1. 安装 rust,可以使用官方的rustup 安装程序或您可能使用的任何软件包管理器。(如果使用 nix,仓库中还有一个 shell.nix 文件)
  2. 在您选择的终端中运行以下命令
cargo install estash
  1. 确保您的路径中有 .cargo/bin,对于 Linux 和 macOS,您需要在终端 RC 文件(例如 $HOME/.zshrc)中添加以下行
export PATH=$HOME/.cargo/bin:$PATH # This is for Linux & macOS, look below for Windows.

在 Windows 上应自动生效(如果刚刚安装,请重启),如果不生效,您可以遵循以下指南了解如何将内容添加到路径中。cargo bin 文件夹将是 {您的用户文件夹}\.cargo\bin

  1. 您可能想在 Linux & macOS 上创建一个 符号链接,或者在 Windows 上创建一个 快捷方式,以便于访问 bin 文件。

  2. 为了更新,请再次运行安装命令,现在您可以参考 使用说明 获取更多关于如何使用它的信息。


编译

这个程序只使用跨平台库。以下步骤要求您已安装 Rust,请查看其官方 安装页面,或使用您可能想要的任何包管理器。(如果使用 nix,仓库中还有一个 shell.nix 文件)。

  1. 在您的电脑上克隆此仓库,如果您已安装 git,可以使用 "git clone",如下所示
git clone https://github.com/Obscurely/estash.git

否则,在仓库页面右上角您会看到一个下载按钮,将仓库作为 zip 文件下载,并在文件夹中提取。

  1. 在新终端/cmd 窗口中打开提取的仓库文件夹,如果您不能在文件夹上右键单击并直接打开,请这样做
cd the/path

然后您就会到达那里。

  1. 从那里,在终端中运行此编译命令
cargo build --release

由于可执行文件大小的优化,这需要一些时间,具体取决于您的系统,但请耐心等待。

  1. 完成,导航到 target/release 并只从那里获取 "estash" 文件。

使用方法

在提供的 视频中 展示了您应该知道的所有关于如何使用 EStash 的信息。我也认为界面直观,但显然我无法给出无偏见的意见或第一次尝试的经验,所以请看这里。

基本使用

登录

  1. 首先点击注册。第一个字段是保险库的名称,第二个字段是密码,第三个字段是验证密码。输入您想要的凭据(注意您也可以使用空名称和密码创建保险库)后,点击注册并等待。
  2. 保险库创建后,在左上角您会看到一个返回箭头,点击它。
  3. 现在我们处于主菜单,点击登录。第一个字段是保险库的名称,第二个字段是密码。输入您的凭据后,点击登录。

保险库

  • 通过在左下角框中添加一些文本并点击其旁边的加号来添加条目。
  • 通过点击树中的条目名称来获取条目的内容。
  • 如果想要启用/禁用安装路径,请点击安装路径框旁边的加号/减号。如果安装路径正在您的当前操作系统上工作,则安装路径会被选中。
  • 安装路径框旁边的检查按钮会检查路径在您的当前操作系统上是否有效。
  • 内容框代表您想要存储的内容,您可以在其中写入任何 utf-8 内容,如果内容不是 utf-8,界面将不会允许您这样做,因此您不必担心。
  • 清除内容按钮会简单地清除内容框中的所有内容。
  • 选择文件按钮让您可以从系统中选择文件(任何文件),使用原生的文件选择器或 FLTK 包含的文件选择器(如果没有找到,则使用后者),并将所有内容导入内容框中。如果文件太大或不是 utf-8 格式(例如照片),内容框将被禁用,并显示一条消息,文件将自动存储在条目中。
  • 备注框对功能没有实际影响,如果想要添加任何额外内容,只需在那里写入即可。
  • 删除按钮会无提示删除条目。
  • 安装按钮会将内容框中的内容(即使您已修改但未保存)尝试安装到选定的安装路径,如果安装路径已启用。
  • 保存按钮会简单地加密条目并保存到数据库中。

高级

  • 更改安装路径或在未保存条目的情况下添加一个,你可能希望这样使用一次。
  • 在不保存条目和安装到文件的情况下更改内容。

路线图

待添加。

贡献

编辑你想要编辑的文件,提交一个拉取请求,我会查看它,如果更改合理且良好,我将接受它,就是这样。

许可证

遵循GPL-3.0协议,所以请遵守许可条件,享受乐趣 :)

联系方式

要么在问题选项卡中发布一个问题,要么通过此电子邮件地址联系我,如果你有更多要说: [email protected]

依赖项

~21MB
~455K SLoC