Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
age — Un outil de chiffrement simple, moderne et sécurisé (et bibliothèque Go) avec de petites clés explicites, aucune option de configuration et une composabilité de style UNIX. | Kitploit
Outils/GitHubGitHub/filosottile/age
Outils de Chiffrement/DéchiffrementRécupération de DonnéesCryptographieProtection de la Vie PrivéeUtilitaires et FrameworksTop en Cryptographie n°7Top en Outils de Chiffrement/Déchiffrement n°1Top en Protection de la Vie Privée n°10
23.2k660146il y a 2 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHub
filosottile/age

age

Un outil de chiffrement simple, moderne et sécurisé (et bibliothèque Go) avec de petites clés explicites, aucune option de configuration et une composabilité de style UNIX.

Voir le dépôtSite web
<p align="center">
    <picture>
        <source media="(prefers-color-scheme: dark)" srcset="https://github.com/FiloSottile/age/blob/main/logo/logo_white.svg">
        <source media="(prefers-color-scheme: light)" srcset="https://github.com/FiloSottile/age/blob/main/logo/logo.svg">
        <img alt="Le logo age, une structure filaire du dôme de Saint-Pierre à Rome, avec le texte : age, chiffrement de fichiers" width="600" src="https://raw.githubusercontent.com/FiloSottile/age/main/logo/logo.svg">
    </picture>
</p>

[![Go Reference](https://pkg.go.dev/badge/filippo.io/age.svg)](https://pkg.go.dev/filippo.io/age)
[![Dependencies](https://badges.api.sourcespotter.com/deps?firstparty=filippo.io&package=filippo.io/age)](https://sourcespotter.com/deps/?firstparty=filippo.io&package=filippo.io%2Fage)
[![man page](https://raw.githubusercontent.com/filosottile/age/HEAD/%3Chttps:/img.shields.io/badge/age(1)-man%20page-lightgrey>)](https://filippo.io/age/age.1)
[![C2SP specification](https://img.shields.io/badge/%C2%A7%23-specification-blueviolet)](https://age-encryption.org/v1)

age est un outil de chiffrement de fichiers, un format et une bibliothèque Go simples, modernes et sécurisés.

Il propose de petites clés explicites, la prise en charge post-quantique, aucune option de configuration et une composabilité de style UNIX.

```console
$ age-keygen -o key.txt
Public key: age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p
$ tar cvz ~/data | age -r age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p > data.tar.gz.age
$ age --decrypt -i key.txt data.tar.gz.age > data.tar.gz
```

📜 La spécification du format se trouve sur [age-encryption.org/v1](https://age-encryption.org/v1). age a été conçu par [@benjojo](https://github.com/benjojo) et [@FiloSottile](https://github.com/FiloSottile).

🦀 Une implémentation Rust alternative et interopérable est disponible sur [github.com/str4d/rage](https://github.com/str4d/rage).

🌍 [Typage](https://github.com/FiloSottile/typage) est une implémentation TypeScript. Elle fonctionne dans le navigateur, Node.js, Deno et Bun.

🔑 Les jetons PIV matériels tels que les YubiKeys sont pris en charge via le plugin [age-plugin-yubikey](https://github.com/str4d/age-plugin-yubikey).

✨ Pour plus de plugins, d'implémentations, d'outils et d'intégrations, consultez la liste [awesome age](https://github.com/FiloSottile/awesome-age).

💬 L'auteur le prononce `[aɡe̞]` [avec un *g* dur](https://translate.google.com/?sl=it&text=aghe), comme GIF, et il s'écrit toujours en minuscules.

## Installation

<table>
    <tr>
        <td>Homebrew (macOS ou Linux)</td>
        <td>
            <code>brew install age</code>
        </td>
    </tr>
    <tr>
        <td>MacPorts</td>
        <td>
            <code>port install age</code>
        </td>
    </tr>
    <tr>
        <td>Windows</td>
        <td>
            <code>winget install --id FiloSottile.age</code>
        </td>
    </tr>
    <tr>
        <td>Alpine Linux v3.15+</td>
        <td>
            <code>apk add age</code>
        </td>
    </tr>
    <tr>
        <td>Arch Linux</td>
        <td>
            <code>pacman -S age</code>
        </td>
    </tr>
    <tr>
        <td>Debian 12+ (Bookworm)</td>
        <td>
            <code>apt install age</code>
        </td>
    </tr>
    <tr>
        <td>Debian 11 (Bullseye)</td>
        <td>
            <code>apt install age/bullseye-backports</code>
            (<a href="https://backports.debian.org/Instructions/#index2h2">activer les backports</a> pour age v1.0.0+)
        </td>
    </tr>
    <tr>
        <td>Fedora 33+</td>
        <td>
            <code>dnf install age</code>
        </td>
    </tr>
    <tr>
        <td>Gentoo Linux</td>
        <td>
            <code>emerge app-crypt/age</code>
        </td>
    </tr>
    <tr>
        <td>Guix System</td>
        <td>
            <code>guix package -i age</code>
        </td>
    </tr>
    <tr>
        <td>NixOS / Nix</td>
        <td>
            <code>nix-env -i age</code>
        </td>
    </tr>
    <tr>
        <td>openSUSE Tumbleweed</td>
        <td>
            <code>zypper install age</code>
        </td>
    </tr>
    <tr>
        <td>Ubuntu 22.04+</td>
        <td>
            <code>apt install age</code>
        </td>
    </tr>
    <tr>
        <td>Void Linux</td>
        <td>
            <code>xbps-install age</code>
        </td>
    </tr>
    <tr>
        <td>FreeBSD</td>
        <td>
            <code>pkg install age</code> (security/age)
        </td>
    </tr>
    <tr>
        <td>OpenBSD 6.7+</td>
        <td>
            <code>pkg_add age</code> (security/age)
        </td>
    </tr>
    <tr>
        <td>Chocolatey (Windows)</td>
        <td>
            <code>choco install age.portable</code>
        </td>
    </tr>
    <tr>
        <td>Scoop (Windows)</td>
        <td>
            <code>scoop bucket add extras && scoop install age</code>
        </td>
    </tr>
</table>

Sur Windows, Linux, macOS et FreeBSD, vous pouvez utiliser les binaires précompilés.

- [https://dl.filippo.io/age/latest?for=linux/amd64](https://dl.filippo.io/age/latest?for=linux/amd64)
- [https://dl.filippo.io/age/v1.3.2?for=darwin/arm64](https://dl.filippo.io/age/v1.3.2?for=darwin/arm64)
- ...

Si vous téléchargez les binaires précompilés, vous pouvez vérifier leurs [preuves Sigsum](https://github.com/filosottile/age/blob/main/SIGSUM.md).

Si votre système dispose [d'une version prise en charge de Go](https://go.dev/dl/), vous pouvez compiler à partir des sources.

```
go install filippo.io/age/cmd/...@latest
```

L'aide de nouveaux empaqueteurs est la bienvenue.

## Utilisation

Pour la documentation complète, lisez [la page de manuel age(1)](https://filippo.io/age/age.1).

```
Usage:
    age [--encrypt] (-r RECIPIENT | -R PATH)... [--armor] [-o OUTPUT] [INPUT]
    age [--encrypt] --passphrase [--armor] [-o OUTPUT] [INPUT]
    age --decrypt [-i PATH]... [-o OUTPUT] [INPUT]

Options:
    -e, --encrypt               Chiffre l'entrée vers la sortie. Par défaut si omis.
    -d, --decrypt               Déchiffre l'entrée vers la sortie.
    -o, --output OUTPUT         Écrit le résultat dans le fichier au chemin OUTPUT.
    -a, --armor                 Chiffre dans un format encodé PEM.
    -p, --passphrase            Chiffre avec une phrase de passe.
    -r, --recipient RECIPIENT   Chiffre vers le RECIPIENT spécifié. Peut être répété.
    -R, --recipients-file PATH  Chiffre vers les destinataires listés dans PATH. Peut être répété.
    -i, --identity PATH         Utilise le fichier d'identité au chemin PATH. Peut être répété.
    --version                   Affiche la version.

INPUT est par défaut l'entrée standard, et OUTPUT est par défaut la sortie standard.
Si OUTPUT existe, il sera écrasé.

RECIPIENT peut être une clé publique age générée par age-keygen ("age1...")
ou une clé publique SSH ("ssh-ed25519 AAAA...", "ssh-rsa AAAA...").

Les fichiers de destinataires contiennent un ou plusieurs destinataires, un par ligne. Les lignes vides
et les lignes commençant par "#" sont ignorées comme commentaires. "-" peut être utilisé pour
lire les destinataires depuis l'entrée standard.

Les fichiers d'identité contiennent une ou plusieurs clés secrètes ("AGE-SECRET-KEY-1..."),
une par ligne, ou une clé SSH. Les lignes vides et les lignes commençant par "#" sont
ignorées comme commentaires. Les fichiers age chiffrés par phrase de passe peuvent être utilisés comme
fichiers d'identité. Plusieurs fichiers de clés peuvent être fournis, et ceux non utilisés
seront ignorés. "-" peut être utilisé pour lire les identités depuis l'entrée standard.

Lorsque --encrypt est spécifié explicitement, -i peut également être utilisé pour chiffrer vers un
fichier d'identité de manière symétrique, à la place ou en plus des destinataires normaux.
```

### Destinataires multiples

Les fichiers peuvent être chiffrés vers plusieurs destinataires en répétant `-r/--recipient`. Chaque destinataire pourra déchiffrer le fichier.

```
$ age -o example.jpg.age -r age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p \
    -r age1lggyhqrw2nlhcxprm67z43rta597azn8gknawjehu9d9dl0jq3yqqvfafg example.jpg
```

#### Fichiers de destinataires

Plusieurs destinataires peuvent également être listés un par ligne dans un ou plusieurs fichiers passés avec l'option `-R/--recipients-file`.

```
$ cat recipients.txt
# Alice
age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p
# Bob
age1lggyhqrw2nlhcxprm67z43rta597azn8gknawjehu9d9dl0jq3yqqvfafg
$ age -R recipients.txt example.jpg > example.jpg.age
```

Si l'argument de `-R` (ou `-i`) est `-`, le fichier est lu depuis l'entrée standard.

### Clés post-quantiques

Pour générer des clés hybrides post-quantiques, qui sont sécurisées contre les futures
attaques des ordinateurs quantiques, utilisez l'option `-pq` avec `age-keygen`. Cela pourrait devenir
la valeur par défaut à l'avenir.

Les identités post-quantiques commencent par `AGE-SECRET-KEY-PQ-1...` et les destinataires par
`age1pq1...`. Les destinataires font malheureusement environ 2000 caractères de long.

```console
$ age-keygen -pq -o key.txt
$ age-keygen -y key.txt > recipient.txt
$ age -R recipient.txt example.jpg > example.jpg.age
$ age -d -i key.txt example.jpg.age > example.jpg
```

La prise en charge des clés post-quantiques est intégrée à age v1.3.0 et versions ultérieures. Alternativement,
le binaire `age-plugin-pq` peut être installé et placé dans `$PATH` pour ajouter la prise en charge
à toute version et implémentation d'age qui prend en charge les plugins. Les destinataires fonctionneront
immédiatement, tandis que les identités devront être converties en identités de plugin
avec `age-plugin-pq -identity`.

### Phrases de passe

Les fichiers peuvent être chiffrés avec une phrase de passe en utilisant `-p/--passphrase`. Par défaut, age générera automatiquement une phrase de passe sécurisée. Les fichiers protégés par phrase de passe sont automatiquement détectés lors du déchiffrement.

```console
$ age -p secrets.txt > secrets.txt.age
Enter passphrase (leave empty to autogenerate a secure one):
Using the autogenerated passphrase "release-response-step-brand-wrap-ankle-pair-unusual-sword-train".
$ age -d secrets.txt.age > secrets.txt
Enter passphrase:
```

### Fichiers de clés protégés par phrase de passe

Si un fichier d'identité passé à `-i` est un fichier age chiffré par phrase de passe, il sera automatiquement déchiffré.

```console
$ age-keygen | age -p > key.age
Public key: age1yhm4gctwfmrpz87tdslm550wrx6m79y9f2hdzt0lndjnehwj0ukqrjpyx5
Enter passphrase (leave empty to autogenerate a secure one):
Using the autogenerated passphrase "hip-roast-boring-snake-mention-east-wasp-honey-input-actress".
$ age -r age1yhm4gctwfmrpz87tdslm550wrx6m79y9f2hdzt0lndjnehwj0ukqrjpyx5 secrets.txt > secrets.txt.age
$ age -d -i key.age secrets.txt.age > secrets.txt
Enter passphrase for identity file "key.age":
```

Les fichiers d'identité protégés par phrase de passe ne sont pas nécessaires pour la plupart des cas d'utilisation, où l'accès au fichier d'identité chiffré implique l'accès à l'ensemble du système. Cependant, ils peuvent être utiles si le fichier d'identité est stocké à distance.

### Clés SSH

En tant que fonctionnalité de commodité, age prend également en charge le chiffrement vers les clés publiques SSH `ssh-rsa` et `ssh-ed25519`, et le déchiffrement avec le fichier de clé privée correspondant. (`ssh-agent` n'est pas pris en charge.)

```console
$ age -R ~/.ssh/id_ed25519.pub example.jpg > example.jpg.age
$ age -d -i ~/.ssh/id_ed25519 example.jpg.age > example.jpg
```

Notez que la prise en charge des clés SSH utilise une cryptographie plus complexe et intègre une étiquette de clé publique dans le fichier chiffré, ce qui permet de suivre les fichiers chiffrés vers une clé publique spécifique.

#### Chiffrement vers un utilisateur GitHub

En combinant la prise en charge des clés SSH et `-R`, vous pouvez facilement chiffrer un fichier vers les clés SSH listées sur un profil GitHub.

```console
$ curl https://github.com/benjojo.keys | age -R - example.jpg > example.jpg.age
```

Gardez à l'esprit que les personnes peuvent ne pas protéger leurs clés SSH à long terme, car elles sont révocables lorsqu'elles sont utilisées uniquement pour l'authentification, et que les clés SSH stockées sur les YubiKeys ne peuvent pas être utilisées pour déchiffrer des fichiers.

### Inspection des fichiers chiffrés

La commande `age-inspect` peut afficher des métadonnées sur un fichier chiffré sans le déchiffrer, notamment les types de destinataires, l'utilisation du chiffrement post-quantique et la taille de la charge utile.

```console
$ age-inspect secrets.age
secrets.age is an age file, version "age-encryption.org/v1".

This file is encrypted to the following recipient types:
  - "mlkem768x25519"

This file uses post-quantum encryption.

Size breakdown (assuming it decrypts successfully):

    Header                      1627 bytes
    Encryption overhead           32 bytes
    Payload                       42 bytes
                        -------------------
    Total                       1701 bytes

Tip: for machine-readable output, use --json.
```
Télécharger l’outil