phpMyAdmin
 sql >> Database >  >> Database Tools >> phpMyAdmin

Come crittografare una colonna specifica in una tabella MySQL?

Guarda qui per l'elenco delle possibili funzioni di crittografia:

http://dev.mysql.com/doc/refman /5.1/it/funzioni-di-crittografia.html

Puoi creare trigger per l'aggiornamento e controllare il campo accessable . Qualcosa del genere:

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;

Puoi anche aggiornare tutti i record esistenti nella tua tabella con questa query:

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

Quindi puoi selezionare i record per il tuo codice PHP:

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

UPD. Anche qui c'era una domanda simile:

Colonne crittografate MySQL