Getting Started

Welcome! Let’s begin encrypting files with confidence.

This quickstart guide will walk you through the essentials: installation, key generation, and file encryption/decryption— all in just a few steps.

Before you begin, make sure you have:

  • A working Python 3.11+ environment set up

  • A terminal or your preferred development tools

While this guide uses command-line examples, you’re welcome to follow along in any environment you’re comfortable with.

Installation

We recommend creating a virtual environment to keep dependencies isolated:

$ python -m venv venv
$ source venv/bin/activate

Next, install Fast File Encryption from PyPI:

$ pip install fast_file_encryption

Generate a Key Pair

To encrypt and decrypt files, you’ll first need a key pair.

By default, the generated private key is not password-protected, as the tool is designed for automated environments. If your use case requires additional security, you may generate or wrap your keys using other tools (e.g. openssl).

Start a Python shell:

$ python3
>>> █

Now generate and store your key pair:

>>> import fast_file_encryption as ffe
>>> from pathlib import Path
>>> ffe.save_key_pair(public_key=Path('public.pem'), private_key=Path('private.pem'))

Encrypt a File

To encrypt a file:

>>> original_file = Path('original_file.txt')
>>> original_file.write_text('Hello world!')
>>> encryptor = ffe.Encryptor(ffe.read_public_key(Path('public.pem')))
>>> encrypted_file = Path('encrypted_file.ffe')
>>> encryptor.copy_encrypted(
...     original_file,
...     encrypted_file,
...     meta={'my-meta': 1},
...     add_source_metadata=True
... )

Decrypt a File

To decrypt the file and inspect the metadata:

>>> decryptor = ffe.Decryptor(ffe.read_private_key(Path('private.pem')))
>>> decryptor.load_decrypted(encrypted_file)
b'Hello world!'
>>> decryptor.read_metadata(encrypted_file)
{'my-meta': 1, 'file_path': '.../original_file.txt', ...}

All Set!

🎉 You’ve successfully encrypted and decrypted your first file.

Next steps: Explore the reference documentation for detailed APIs, or review the file format if you’re integrating with other systems.

Reference Manual →

File Format →