sql >> データベース >  >> Database Tools >> phpMyAdmin

MySQLテーブルの特定の列を暗号化する方法は?

    可能な暗号化機能のリストについては、こちらをご覧ください:

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

    更新のトリガーを作成し、フィールドaccessableを確認できます 。そのようなもの:

    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;
    

    次のクエリを使用して、テーブル内の既存のすべてのレコードを更新することもできます:

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

    したがって、PHPコードのレコードを選択できます:

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

    UPD。 同様の質問もありました:

    MySQL暗号化列



    1. SSMSを使用してSQLServerCEファイルに接続する方法

    2. CREATE ALGORITHM =UNDEFINED DEFINER

    3. mySQLphpmyadmin-デフォルトでは小文字のデータ

    4. MySQLWorkbench非互換/非標準サーバー