**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)