如何实现加密数据模糊查询
可以通过mysql提供的函数来进行: AES_ENCRYPT(str, key) 加密 AES_DECRYPT(str,key)解密
str: 数据 key:密钥
1 准备表
CREATE TABLE `test` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`sec` blob,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
数据
insert into test (name,sec) values ("张三",AES_ENCRYPT("13412341234","123")),("李四",AES_ENCRYPT("15912345678","123")),("ww",AES_ENCRYPT("13478906543","123"))
2 查询
select name,AES_DECRYPT(sec,"123") from test where AES_DECRYPT(sec,"123") like "134%"