Rajoutons une notion importante, Chiffrer/déchiffrer demande donc d'avoir password (chiffrage symetrique) ou une paire de clé (chiffrage asymétrique).
Dans les deux cas, sauf chiffrement end to end tu te retrouves à avoir, physiquement sur le serveur sous forme de fichier, ou en dure dans ton code, ce qui te permettra de chiffrer/déchiffrer tes informations.
Ce qui veut dire que quelques soits la stratégie mise en place coté BDD, si le hacker accède à ton code source, il sera aisement capable de déchiffrer et donc accéder à ta BDD.
Ta stratégie devra donc être globale.
Le cas le plus simple à résoudre :
Utilisateur Alice a besoin d'accéder uniquement à ces données, mais aucune d'un autre utilisateur. Tu peux donc chiffrer/déchiffrer l'information directement avec le mot de passe d'Alice, elle le saisira à chaque phase de chiffrement/déchiffrement. Ou le stocker en session qui s'expire rapidement.
(Petit Appartait, stocker le mot de passe en session pour éviter les saisies multiples est dangereux, en effet un hacker déjà en possession d'un accès au serveur, pourra lire les données de tout les utilisateurs actuellement connecté, donc avoir le password, donc décrypter ou falcifier leurs données)
En revanche, sans ce dit password, tu ne peux retrouver l'information initial. Comment faire pour que Bob et Alice puisse partager leurs informations ?
Une solution parmis d'autres :
Le partage de clé ! tu génères des clés par document, ainsi toute personnes aillant l'accès auront cette clé, mais celle ci est copié pour chaques personnes aillant l'accès, mais chiffré avec son password personnel.
Tu auras donc N copy de la clé, N étant le nombre d'utilisateur aillant accès à cette information.
Un problème majeur a cette solution est que tu ne peux "chiffrer la clé" sans connaitre le password de l'utilisateur, le système doit donc attendre la prochaine connection (ou saisie de password) pour faire ce traitement, et garder la clé en claire en attendant. risqué...
Avec cet exemple j'essaye de montrer que toutes solutions à ces forces et ces faiblesses, qu'une solution parfaite n'existe pas. Qu'il faut faire des compromis et surotut être concient de tes faiblesses pour au mieux, les supprimer, au pire les minimiser et surveiller.