Files
cryptage/README.md
Dom 0883075872 docs: ajout du README avec mode d'emploi et exemples
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 17:41:52 +02:00

101 lines
5.3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
**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
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANklEQVR4nO3OMQ2AABAAsSPBCj7fFRYQwYwEZiywEZJWQZeZ2ao9AAD+4lyruzq+ngAA8Nr1AMTJBeJDClAyAAAAAElFTkSuQmCC)
**Installation**
Copier cryptage.exe sur le poste Windows. Aucune installation requise.
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANUlEQVR4nO3OQQmAABRAsSeYxKS/kJkED6bwYAVvImwJtszMVu0BAPAXx1rd1fn1BACA164HHDwF+DpPyKwAAAAASUVORK5CYII=)
**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
 
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANUlEQVR4nO3OQQmAABRAsSfYxKK/kYXEkyk8WcGbCFuCLTOzVXsAAPzFuVZ3dXw9AQDgtesB/v8F8JQadPwAAAAASUVORK5CYII=)
**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.
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANUlEQVR4nO3OMQ2AUBBAsUfyNTCi9VwgEA3sWGAjJK2CbjNzVGcAAPzFtapV7V9PAAB47X4AEW4ELQDBN+AAAAAASUVORK5CYII=)
**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
 
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANElEQVR4nO3OUQmAABBAsSeIWMICprwEpjSIFfwTYUuwZWaO6goAgL+412qrzq8nAAC8tj8tdQNNdXaCdAAAAABJRU5ErkJggg==)
**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)
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANklEQVR4nO3OMQ2AABAAsSNBACP6MMH6NpGACyywEZJWQZeZ2aszAAD+4l6rrTq+ngAA8Nr1AL+6BElk4wV6AAAAAElFTkSuQmCC)
 
 
**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)