Skip to content

erbsland-dev/fast-file-encryption

Fast File Encryption

Fast File Encryption is a lightweight, robust, and developer-friendly solution for encrypting large files—ranging from a few megabytes to several terabytes—securely and efficiently.

Ideal for environments that require:

  • Minimal runtime dependencies
  • Strong asymmetric encryption using RSA
  • High performance for both small and large files

Features

  • Requires only Python ≥ 3.11 and the cryptography package
  • Securely encrypts and decrypts files using RSA public/private key pairs
  • Only the public key is needed on the server—no private key exposure
  • Supports streaming and large file encryption (up to 10 TB and beyond)

Getting Started 🚀

New to the project? Start with our step-by-step Getting Started Guide. It walks you through installation, key generation, and your first file encryption.

▶️ Getting Started

Documentation 📚

Explore the full documentation:

  • In-depth reference for encryption and decryption classes
  • Key management tools and utilities
  • Technical details of the file format

▶️ Reference Manual

▶️ File Format Specification

Requirements

  • Python ≥ 3.11
  • cryptography package (based on OpenSSL)

Running the Tests

Install the dependencies from requirements.txt and execute pytest from the project root:

pip install -r requirements.txt
pytest

Project Goals

Fast File Encryption is built with the following principles:

  • Archive Data — Designed to securely archive files.
  • Secure by Default — No configurable options that weaken encryption.
  • Large File Support — Optimized for files up to several terabytes.
  • Metadata Block — Clean separation of encrypted metadata.
  • No Key = No Access — Data remains safe even if a server is compromised.
  • Corruption Detection — Built-in checksums detect silent corruption.

▶️ More about our design goals

Bug Reports & Feature Requests

Have feedback or ideas? Found a bug? We'd love to hear from you.

▶️ Submit an Issue

License

Copyright © 2021–2025 Tobias Erbsland – https://erbsland.dev/ EducateIT GmbH – https://educateit.ch/

Licensed under the Apache License, Version 2.0.

You may obtain a copy of the license at:

http://www.apache.org/licenses/LICENSE-2.0

Distributed on an “AS IS” basis, without warranties or conditions of any kind. See the LICENSE file for details.

About

Fast, secure, and minimal file encryption for large files using RSA and AES.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages