1 unstable release

0.5.0 Aug 31, 2024
0.4.2 Apr 2, 2023
0.4.1 Nov 12, 2022
0.2.2 Jul 14, 2022
0.2.0 Jun 18, 2021

#126 in Compression

Download history 10/week @ 2024-07-29 153/week @ 2024-08-26 23/week @ 2024-09-02 1/week @ 2024-09-09 1/week @ 2024-09-16 27/week @ 2024-09-23 8/week @ 2024-09-30

502 downloads per month

MIT license

34KB
918 lines

aef GitHub Workflow Status Crates.io

aef is an encrypted file archiver, it uses AES-256-GCM to fully encrypt data and  scrypt  to prevent brute force data cracking. It also allows the use of Brotli to reduce the size of archived files.

[!WARNING]

  • aef has not undergone any security check
  • Disruptive changes may occur prior to 1.0

Features

  • Use AES-256-GCM for complete data encryption
  • Use scrypt to prevent brute force cracking
  • Use brotli compression file Optional
  • Support cross-platform Linux macOS Windows
  • Support the encryption directory and file
  • Support file permissions Unix

Install

Download the binary from the release page

Or use cargo to install

cargo install aef

Usage

Encryption

aef -i ./files/ -o ./dist.aef

Decryption

aef -i ./dist.aef -o ./files/ -d

Password

By default you will enter your password in the terminal, if you don't want to enter it manually you can use the -p option

aef -i ./files/ -o ./dist.aef -p 123456

Compress

aef support the use of brotli to compress files, you can use the -c option to specify the compression level

# Compress at the fastest speed
aef -i ./files -o ./dist.aef -c

# Adjust the compress quality
aef -i ./files -o ./dist.aef -c 8
  • Fastest: -c 0
  • Best: -c 11

Help

aef --help
Usage: aef [OPTIONS]

Options:
  -i, --input <INPUT>                File | Stdin
  -o, --output <OUTPUT>              File | Stdout
  -p, --password <PASSWORD>          Set password
  -d, --decrypt                      Decrypt file
  -c, --compress [<LEVEL>]           Set compression level [0 - 11]
      --scrypt-log-n <SCRYPT_LOG_N>  Set scrypt params [default: 20]
      --scrypt-r <SCRYPT_R>          Set scrypt params [default: 8]
      --scrypt-p <SCRYPT_P>          Set scrypt params [default: 1]
  -h, --help                         Print help
  -V, --version                      Print version

Dependencies

~16–24MB
~581K SLoC