Possible Duplicate:
Chiffrement à double sens en PHP : j'ai besoin de stocker des mots de passe qui peuvent être récupérés
Je sais que la meilleure pratique pour stocker les mots de passe des utilisateurs est de stocker uniquement un hachage irréversible du mot de passe.
Cependant, je développe une application où j'aurai besoin de stocker les informations de connexion d'un utilisateur pour un autre service web - je devrai les connecter périodiquement et effectuer certaines tâches de maintenance. Malheureusement, le service n'offre pas de jetons d'autorisation, je dois donc stocker les mots de passe d'une manière qui me permet d'accéder à leurs valeurs en texte brut. Je ne possède ni ne contrôle le service auquel je m'authentifie, et la seule méthode consiste à 'emprunter' un nom d'utilisateur et un mot de passe d'un utilisateur et à s'authentifier.
Je prévois de chiffrer les mots de passe avec AES_ENCRYPT dans la base de données, ce qui signifie que si quelqu'un parvient d'une manière ou d'une autre à accéder à la base de données, il ne pourra pas obtenir de texte en clair. Cependant, mon code devra avoir accès à la clé pour les déchiffrer, donc si tout le serveur est compromis, il n'y a pas de protection et les mots de passe seront révélés.
En dehors du chiffrement décrit ci-dessus, existe-t-il des meilleures pratiques ou des mesures que je peux prendre pour faire cela le plus sûrement possible ?
ÉDITION
Je sais que quoi que je fasse, finalement les mots de passe doivent être accessibles en clair et donc un serveur compromis signifie que les mots de passe seront révélés, mais je me demande quelles mesures je peux prendre pour atténuer mon risque. Par exemple, chiffrer la base de données me protège dans la situation où la base de données est compromise mais pas l'ensemble du serveur. D'autres mesures d'atténuation similaires seraient grandement appréciées.