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

Hur krypterar man en specifik kolumn i en MySQL-tabell?

Titta här för en lista över möjliga krypteringsfunktioner:

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

Du kan skapa utlösare för uppdatering och kontrollera fältet accessable . Något sådant:

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;

Du kan också uppdatera alla befintliga poster i din tabell med denna fråga:

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

Så du kan välja poster för din PHP-kod:

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

UPD. Även här var en liknande fråga:

MySQL-krypterade kolumner



  1. PHP skapa HTML-tabell från databasen

  2. Databasrelationer med phpmyAdmin (sammansatta nycklar)

  3. Fel #1046 - Ingen databas vald SQL-import på XAMPP

  4. Fel vid installation av SSDT (SQL Server Data Tools)