-- 使用UUID()生成随机盐值,并将其与固定密钥串联生成最终的加密密钥
SET @salt = UUID();
SET @key = CONCAT(@salt, 'MyKey1234567890');
INSERT INTO user(mobile,salt)
VALUES
(AES_ENCRYPT('13311111111', @key), @salt);
SET @salt = UUID();
SET @key = CONCAT(@salt, 'MyKey1234567890');
INSERT INTO user(mobile,salt)
VALUES
(AES_ENCRYPT('13599911111', @key), @salt);
-- 解密数据
代码语言:sql复制
-- 使用存储的盐值与固定密钥串联来解密手机号
SELECT CONVERT(AES_DECRYPT(mobile, CONCAT(salt,'MyKey1234567890')) USING utf8) AS mobile FROM user;
-- 脱敏数据展示
代码语言:sql复制
-- 安装脱敏插件
mysql> INSTALL PLUGIN data_masking SONAME 'data_masking.so';
mysql> SELECT * FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'data%';
-- 保留手机号的前3位和后2位,中间部分用'X'替代
SELECT mask_inner(CONVERT(AES_DECRYPT(mobile, CONCAT(salt,'MyKey1234567890')) USING utf8), 3, 2) AS mobile FROM user;