Bonjour

Je souhaite crypter des fichiers (a priori des fichiers PDF) sur le serveur. Ces fichiers pouvant contenir des données sensibles.
Je travaille sur un conteneur en PHP, version 8.2.
J'ai trouvé plusieurs pistes mais rien de convaincant pour l'instant.
Il y avait MCrypt, maintenant obsolète.
J'ai l'impression qu'on peut utiliser openSSL, mais ça reste flou pour moi.
Si quelqu'un a une suggestion, je suis preneur.
Merci.
Pascal

3 réponses


Bonjour,
Plusieurs solutions sont possibles, ça peut fortement dépendre de l'implémentation.
Je ne suis pas un expert PHP, mais j'ai cru comprendre que le portage PHP de libsodium (une librairie très utilisée pour justement implémenter des fonctionnalités de chiffrement crypto-secures) avait été intégré nativement à PHP depuis 7.2 si je ne dis pas de bétise; sous une API du nom de Sodium.
Si vous êtes familier à PHP son utilisation sera plus simple que de passer par les primitives d'OpenSSL que PHP implémente.
J'ai trouvé cet article pour faire une petite intro car la doc de PHP est assez légère sur le sujet. Il montre des exemples de chiffrement symétrique et asymétrique assez complets. Vous pourrez chiffrer les fichiers et les stocker soit directement dans un système de fichier, soit dans des champs blob d'une basse de donnée par exemple.

Je pense aussi utile de préciser qu'il est également important de prendre en compte la nécessité d'isoler le code source qui contiendra vos clés de chiffrement des fichiers PDF chiffrés, tout du moins dans le cas d'un système de chiffrement symétrique (ou même asymétrique si les clés publiques et privées sont accessible par un même utilisateur par ex.).

Merci Ike, je vais explorer ça. Apparemment ça répond à ma question. Je reviendrai sur le forum pour donner le résultat de mes investigations.

Exploration réussie.
Il y a effectivement la possibilité d'encrypter et de décrypter des fichiers avec libsodium:
encrypter
décrypter

Testé et ... ça fonctionne !
Merci encore Ike.