# FiloSottile/age

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/filosottile-age).**

21,369 stars · 607 forks · Go · bsd-3-clause

## Links

- GitHub: https://github.com/FiloSottile/age
- Homepage: https://age-encryption.org
- awesome-repositories: https://awesome-repositories.com/repository/filosottile-age.md

## Topics

`age-encryption` `built-at-rc`

## Description

Age is a command-line utility for file encryption that utilizes hybrid cryptography to secure data for multiple recipients. It employs a combination of asymmetric key exchange and symmetric encryption to protect files, supporting access control through public keys, shared passphrases, and hardware-backed identity integration.

The tool is designed for memory-efficient operation, utilizing stream-oriented processing to handle large datasets in small, sequential chunks. It features a stanza-based metadata framing system that allows for extensible file headers and supports random-access decryption, enabling users to retrieve specific portions of an encrypted file without processing the entire data stream.

To facilitate reliable transmission across systems with limited character support, the utility includes an ASCII-armored data format that converts binary encrypted files into standard text. It uses checksummed character encoding for identity keys to improve human readability and reduce errors during key management.

## Tags

### Security & Cryptography

- [Encryption Tools](https://awesome-repositories.com/f/security-cryptography/encryption-tools.md) — Provides a command-line utility for encrypting and decrypting files using modern elliptic curve cryptography.
- [Encryption](https://awesome-repositories.com/f/security-cryptography/encryption.md) — Secures sensitive data using hybrid encryption methods for multiple authorized recipients. ([source](https://age-encryption.org/v1))
- [Hardware Security Module Integrations](https://awesome-repositories.com/f/security-cryptography/hardware-security-module-integrations.md) — Interfaces with external security modules to perform cryptographic operations without exposing private key material.
- [Message Decryption](https://awesome-repositories.com/f/security-cryptography/message-decryption.md) — Decrypts specific portions of large files on demand to maintain high performance. ([source](https://age-encryption.org/v1))
- [Data Encryption](https://awesome-repositories.com/f/security-cryptography/data-encryption.md) — Processes large files in small, manageable chunks to perform encryption or decryption without exhausting system memory. ([source](https://age-encryption.org/v1))
- [Key Exchange Protocols](https://awesome-repositories.com/f/security-cryptography/key-exchange-protocols.md) — Uses asymmetric cryptography to secure symmetric session keys for multiple recipients.
- [Stream Ciphers](https://awesome-repositories.com/f/security-cryptography/stream-ciphers.md) — Processes data in small, sequential chunks to maintain a constant memory footprint during encryption.
- [ASCII Armoring](https://awesome-repositories.com/f/security-cryptography/data-encoders/ascii-armoring.md) — Converts binary data into a standard text format to ensure safe transmission across systems with limited character support. ([source](https://age-encryption.org/v1))
- [Encoding Schemes](https://awesome-repositories.com/f/security-cryptography/identity-key-management/encoding-schemes.md) — Provides checksummed character encoding for identity keys to improve human readability and reduce errors.
- [End-to-End Encryption](https://awesome-repositories.com/f/security-cryptography/privacy-data-protection/data-encryption/end-to-end-encryption.md) — Converts binary encrypted files into standard text formats to ensure reliable delivery across systems.

### Data & Databases

- [Cryptographic Processors](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/stream-processing-systems/data-streaming/structured-event-streams/streaming-processors/cryptographic-processors.md) — Handles large files by streaming data in small chunks to maintain performance during cryptographic operations.
- [Random-Access Decryption](https://awesome-repositories.com/f/data-databases/encrypted-data-retrieval/random-access-decryption.md) — Maintains an internal index of encrypted segments to allow retrieval of specific data portions without decrypting the entire file.
- [Stanza-Based Framing](https://awesome-repositories.com/f/data-databases/metadata-based-organization/stanza-based-framing.md) — Organizes file headers into discrete, extensible blocks containing recipient information and cryptographic parameters.

### Programming Languages & Runtimes

- [File Stream Management](https://awesome-repositories.com/f/programming-languages-runtimes/file-stream-management.md) — Encrypts or decrypts massive datasets in small chunks to maintain system performance.

### Software Engineering & Architecture

- [Data Formats](https://awesome-repositories.com/f/software-engineering-architecture/data-formats.md) — Provides a file encryption standard that encodes binary encrypted data into text for safe transmission.
