Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Cryptage — Chiffrement/déchiffrement CSV pour Amadea
Outil en ligne de commande pour chiffrer et déchiffrer les champs Symbolic des exports CSV Amadea.
- Algorithme : AES-256-GCM (chiffrement authentifié)
- Gestion des clés : fichier de clé (aléatoire ou dérivé d'un mot de passe via Argon2id)
- Performance : ~0.14s pour 100 000 lignes × 3 champs
- Taille : ~740 Ko, aucune dépendance
Installation
Copier cryptage.exe sur le poste Windows. Aucune installation requise.
Utilisation
1. Générer une clé
Clé aléatoire (recommandé)
cryptage --generate-key
# Clé dérivée d'un mot de passe
cryptage --generate-key -p
Le fichier cryptage.key est créé à côté de l'exécutable. Ce fichier est secret — sans lui, impossible de déchiffrer les données.
2. Chiffrer
cryptage Input.csv Output.csv
3. Déchiffrer
cryptage -d Input.csv Output.csv
4. Options
| Option | Description |
| -d | Mode déchiffrement |
| -k chemin | Utiliser un fichier de clé spécifique |
| -p | Dériver la clé d'un mot de passe (avec --generate-key) |
| --generate-key | Générer une nouvelle clé |
| --version | Afficher la version |
| --help | Afficher l'aide |
| Exemple avec clé personnalisée : | |
| cryptage -k C:\cles\ma_cle.key Input.csv Output.csv | |
| cryptage -d -k C:\cles\ma_cle.key Input.csv Output.csv | |
| Format CSV | |
| Le séparateur est ; (point-virgule). Le fichier doit respecter cette structure : | |
| - | - |
| Ligne | Contenu |
| 1 | Noms des colonnes |
| 2 | Types des colonnes |
| 3+ | Données |
| Seules les colonnes de type ** Symbolic ** sont chiffrées/déchiffrées. Les autres colonnes sont recopiées telles quelles. | |
| Exemple complet | |
| **Fichier d'entrée (**Input.csv ) — données en clair | |
| ID;N_sejour;N_IPP;CP;Age;Tarif | |
| Integer;Integer;Symbolic;Symbolic;Integer;Real | |
| 1;2422530;879856498;33740;37;2984 | |
| 2;2422592;317489412;33680;15;1568 | |
| 3;2422985;971433167;33121;74;8974 | |
| Chiffrement | |
| cryptage Input.csv Encrypted.csv | |
| **Résultat (**Encrypted.csv ) | |
| ID;N_sejour;N_IPP;CP;Age;Tarif | |
| Integer;Integer;Symbolic;Symbolic;Integer;Real | |
| 1;2422530;HeqPi34BQRtwn2HpNbQXp+2aXTlD6s2h9JTAquMGqAvWsjhGVA==;xGPx2RbV1oA...;37;2984 | |
| 2;2422592;Ig+sAargNQwZ8Usfl56i2KGQCtEzUpRU1oxb38dRzCBb08+P9Q==;5lMQf50RJDT...;15;1568 | |
| 3;2422985;1NypB/jH/1BH1dS3UiorHefe+KLWPmMHuSe+38mE1FVMskmxww==;+g11Noa/hSW...;74;8974 | |
| Les colonnes N_IPP et CP (Symbolic) sont chiffrées en base64. Les colonnes ID, N_sejour, Age et Tarif restent inchangées. | |
| Déchiffrement | |
| cryptage -d Encrypted.csv Decrypted.csv | |
| **Résultat (**Decrypted.csv ) — identique à l'original | |
| ID;N_sejour;N_IPP;CP;Age;Tarif | |
| Integer;Integer;Symbolic;Symbolic;Integer;Real | |
| 1;2422530;879856498;33740;37;2984 | |
| 2;2422592;317489412;33680;15;1568 | |
| 3;2422985;971433167;33121;74;8974 | |
| Sécurité |
- AES-256-GCM : chiffrement authentifié (confidentialité + intégrité)
- Chaque valeur utilise un IV aléatoire unique — chiffrer deux fois la même valeur produit un résultat différent
- La clé dérivée par mot de passe utilise Argon2id (résistant aux attaques par force brute)
- Le fichier cryptage.key doit être protégé (droits d'accès restrictifs, ne pas le transmettre par email)
Workflow Amadea
Base Amadea Input.csv cryptage.exe Output.csv Base Amadea
(cryptée) → (extraction) → -d (déchiffre) → (en clair) → (mise à jour)
(en clair) → (extraction) → (chiffre) → (chiffré) → (mise à jour)
Description
Languages
Rust
100%