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

Hvordan krypterer man en specifik kolonne i en MySQL-tabel?

Se her for en liste over mulige krypteringsfunktioner:

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

Du kan oprette trigger for opdatering og kontrollere feltet accessable . Sådan noget:

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 også opdatere alle eksisterende poster i din tabel med denne forespørgsel:

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

Så du kan vælge poster til din PHP-kode:

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

UPD. Også her var lignende spørgsmål:

MySQL-krypterede kolonner



  1. Hvorfor er tabel CHARSET sat til utf8mb4 og COLLATION til utf8mb4_unicode_520_ci

  2. Udvalgt som dødvandsofferet på simpel Add() -> SaveChanges()

  3. Ugyldigt objektnavn - lagret procedure

  4. MySQL-OPDATERING med SUBQUERY af samme tabel