sql >> Databáze >  >> Database Tools >> phpMyAdmin

Jak zašifrovat konkrétní sloupec v tabulce MySQL?

Zde najdete seznam možných funkcí šifrování:

http://dev.mysql.com/doc/refman /5.1/cs/encryption-functions.html

Můžete vytvořit spouštěč pro aktualizaci a zaškrtnout tam pole accessable . Něco takového:

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;

Pomocí tohoto dotazu můžete také aktualizovat všechny existující záznamy v tabulce:

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

Můžete tedy vybrat záznamy pro váš kód PHP:

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

UPD. Také zde byla podobná otázka:

Sloupce šifrované MySQL



  1. apostrof phpmyadmin sql nefunguje

  2. Jak zašifrovat konkrétní sloupec v tabulce MySQL?

  3. Jak stáhnout a nainstalovat DBeaver

  4. Získání obsahu zobrazení Eclipse RCP