#加密解密 #解密 #加密 #掩码 #CLI 工具 #CLI

app med_cli

基于 Rust 的 CLI 工具,用于 CSV/JSON 掩码、加密和解密

22 个版本 (4 个破坏性更新)

0.6.4 2023 年 7 月 8 日
0.6.3 2023 年 7 月 7 日
0.6.0 2023 年 6 月 30 日
0.5.9 2023 年 6 月 25 日
0.1.0 2023 年 5 月 28 日

254命令行工具

Download history 6/week @ 2024-03-09 1/week @ 2024-03-16 67/week @ 2024-03-30 8/week @ 2024-04-06

每月 202 次下载

Apache-2.0

96KB
2K SLoC

Crates.io Actions Status codecov Crates.io

M.E.D. (掩码、加密、解密) - 用于 CSV/JSON 文件的基于 Rust 的 CLI 工具。

背景和动机

这是一个个人爱好项目;基于观察,有时我们需要一个足够简单的 CLI 工具,具有可审计的数据掩码/加密/解密功能,用于 CSV/JSON 文件。

主要功能

  1. Rust 驱动的性能。
  2. 提供掩码和加密/解密功能。
  3. 内置 SQLite 驱动的审计表,可审计。

安装

从 GitHub 发布版下载

M.E.D. 的二进制名称为 med,它依赖于 med_core

med 的预编译二进制文件存档适用于 Windows、macOS 和 Linux。未明确提及平台的用户建议下载这些存档之一。

Fedora 和 CentOS

dnf install med

用法

$ med --help
A simple to use, enterprise ready, rust powered data masking/encryption/decription cli tool

Usage: med <MODE> --file <FILE> [OPTIONS]

Arguments:
  <MODE>
          What mode to run the program in
          Possible values:
          - mask:    Mask the data by *
          - encrypt: Encrypt the data with provided KEY
          - decrypt: Decrypt the data with provided KEY

Options:
  -t, --type <TYPE> type of file we will process, available option [csv, json] [default: csv]
  -k, --key <KEY> key for Encrypt and Decrypt the file.
  -s, --standard <STANDARD> set the Encrypt and Decrypt standard
        Possible values:
          - des64:  DES standard 64
          - aes128: AES standard 128
          - aes192: AES standard 192
          - aes256: AES standard 256
  -f, --file <FILE> file path for the
  -c, --config <CONFIG> Sets a custom config yml path [default: conf.yaml]
  -o, --output <OUTPUT> Sets a file/directory path for output [default: output]
  -d, --debug <DEBUG> Sets debug flag [possible values: true, false]
  -w, --worker <WORKER> Sets work flag
  -h, --help Print help (see a summary with '-h')
  -V, --version Print version

用户指南

配置

配置文件可以是任何给定名称的 yaml 文件

// example of the conf.yaml
mask_symbols: "#####" # mask symbols
fields: # list of the cols/fields you want to mask 
  - name
  - email
  - phone

示例

  1. 所有示例数据都包含在您下载的软件包中。所有数据都是 随机生成 的。 csv json
  2. 您只需指定文件的根目录。M.E.D. 会处理其余部分。
// mask the csv files in folders
med mask -f demo/data/csv -c demo/conf/conf_csv.yaml -w 3

// mask the json files in folders
med mask -t json -f demo/data/json -c demo/conf/conf_json.yaml -w 3

// encrypt the csv files 
med encrypt -f demo/data/csv -c demo/conf/conf_csv.yaml -w 4 -k YOUR_SECRET -s des64

// decrypt the json files 
med decrypt -t json -f output/demo/data/json -c demo/conf/conf_json.yaml -w 5 -k YOUR_SECRET -s des64

审计数据库 (SQLite)

M.E.D. 使用 SQLite 进行审计捕获,主要确保遵循企业级审计基础标准,包括捕获、谁、何时、何地(哪台机器)、做什么以及状态等。

元数据和迁移可在 此处 查看。

审计数据库的位置将根据您的操作系统而有所不同。

位置
平台 示例
Linux $HOME/.config/med /home/bob/.config/med
MacOS $HOME/Library/Application Support/med /Users/Bob/Library/Application Support/med
Windows {FOLDERID_RoamingAppData}/med C:\Users\Bob\AppData\Roaming\med

数据库迁移

我们准备了数据库迁移功能,并且这个迁移文件夹必须位于你的二进制文件相同的目录下。

依赖项

~39–55MB
~1M SLoC