phpMyAdmin
 sql >> Base de données >  >> Database Tools >> phpMyAdmin

Comment chiffrer une colonne spécifique dans une table MySQL ?

Regardez ici pour la liste des fonctions de chiffrement possibles :

http://dev.mysql.com/doc/refman /5.1/fr/fonctions-de-cryptage.html

Vous pouvez créer un déclencheur pour la mise à jour et vérifier le champ accessable . Quelque chose comme ça :

CREATE TRIGGER crypt_trg BEFORE UPDATE ON table FOR EACH ROW
BEGIN
  IF new.accessable = 0 THEN
    SET new.msg := ENCRYPT(new.msg, 'key');
  ELSE
    SET new.msg := DECRYPT(new.msg, 'key');
  END IF;
END;

Vous pouvez également mettre à jour tous les enregistrements existants dans votre table avec cette requête :

UPDATE table SET msg = IF(accessable = 0, ENCRYPT(msg, 'key'), DECRYPT(msg, 'key'));

Vous pouvez donc sélectionner des enregistrements pour votre code PHP :

SELECT msg_id, user_id, time, IF(accessable = 0, DECRYPT(msg, 'key'), msg) msg
FROM table

MISE À JOUR. Voici également une question similaire :

Colonnes chiffrées MySQL