Comment chiffrer une colonne dans une table MySQL?
J'expérimente avec la création d'un système de messagerie simple (PHP) de la page qui utilise une table MySQL pour stocker les entrées. Les grandes lignes des colonnes, je vais utiliser dans la table sont:
msg_id (clé primaire, de type auto_increment)
user_id (clé étrangère pointant vers l'utilisateur qui a créé le message)
temps (DATETIME entrée de fournir msg horodateurs)
msg (VARCHAR contenant les msg)
accessible (juste un int(1), 0 signifie pas de l'un à l'exception de l'utilisateur lui-même pouvez lire les msg, et 1 signifie que d'autres peuvent le lire)
Ce que je me demande, quelle est la meilleure façon de chiffrer le msg champ regards indiscrets ne peut pas le lire (disons, par l'ouverture de la base de données mysql CLI ou phpMyAdmin et il suffit de lire la valeur stockée dans une ligne)?
Si "accessible" est réglé à 0, alors que l'utilisateur lui-même, devrait être en mesure de le lire (par accéder à une page PHP), mais si mis à 1, tout le monde devrait être en mesure de le lire. Je ne sais pas comment aborder cette, de sorte que toute aide est très appréciée!
OriginalL'auteur BeeDog | 2010-11-25
Vous devez vous connecter pour publier un commentaire.
Voir ici pour la liste des fonctions de chiffrement:
http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html
Vous pouvez créer déclencheur pour la mise à jour et vérifier l'absence de champ
accessable
. Quelque chose comme ça:Vous pouvez également mettre à jour tous les enregistrements existants dans vous table avec cette requête:
De sorte que vous pouvez sélectionner des enregistrements pour vous de code PHP:
UPD. Ici aussi a été question similaire:
MySQL colonnes chiffrées
Je suis d'accord avec @Roey passage clé dans le déclenchement, fera tout l'objet d'aucune utilité.
OriginalL'auteur rMX
Vous pouvez également chiffrer les données avant que la requête de l'insérer, de sorte que MySQL n'a même pas savoir il est crypté, et de décrypter sur la récupération de l'application. Pour cela, vous devez les stocker dans un varbinary ou colonne blob.
Cryptage - Si vous savez l'essentiel, vous pouvez déchiffrer les données. Si votre MySQL admin a accès à la clé utilisée pour chiffrer l'information, alors bien sûr il peut aussi décrypter. C'est vrai pour tous la méthode que vous pourriez utiliser. Comment vous endecrypt, qui dépend entièrement de votre application et la fonctionnalité qu'il propose, et ce que des algorithmes que vous choisissez d'utiliser.
OriginalL'auteur Core Xii