pii-toolkit-cy
Avec pii-toolkit-cy, je masque les données personnelles et chiffre des champs dans Node.js via redact() et createPiiCipher(), sans dépendances d’exécution.
Le problème
J’ai créé cette bibliothèque pour deux tâches distinctes : retirer les données personnelles du texte libre avant qu’il ne quitte un système et chiffrer les champs d’identité au repos.
Les motifs de masquage peuvent confondre un numéro de commande ou un montant de paiement avec des données personnelles. Pour le chiffrement par champ, j’évite de réutiliser un IV ou de remplacer une fonction de dérivation de clé par une fonction de hachage rapide.
L’approche
J’utilise dans redact() des motifs prudents pour les e-mails, cartes de paiement, IBAN et numéros de téléphone. Ces motifs sont conçus pour laisser les entiers bruts, comme les numéros de commande, inchangés.
J’utilise AES-256-GCM dans createPiiCipher(), avec un IV aléatoire neuf pour chaque valeur et scrypt pour dériver les clés. Le déchiffrement authentifié vérifie l’intégrité des données.
Je fournis des exports ESM et les types TypeScript, sans dépendances d’exécution.
Le résultat
Je mets le code à disposition sur GitHub. J’utilise redact() sur le texte libre avant de le transmettre et createPiiCipher() pour les champs à chiffrer au repos. La bibliothèque n’est pas publiée sur npm.