docs: ajout du README avec mode d'emploi et exemples
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
100
README.md
Normal file
100
README.md
Normal file
@@ -0,0 +1,100 @@
|
||||
**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** | **Description** |
|
||||
| 1 | Noms des colonnes | En-têtes |
|
||||
| 2 | Types des colonnes | Integer, Symbolic, Real, etc. |
|
||||
| 3+ | Données | Valeurs |
|
||||
|
||||
**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)
|
||||
|
||||
Reference in New Issue
Block a user