数据安全保护
-
加密数据
@RestController
@RequestMapping("/priv")
public class PrivController {
/**
* 加密
* @return
*/
@RequestMapping("/test")
@ResponseBody
public String test(){
String username = "root";
String password = "123456";
String url = "jdbc:mysql://123.456.789:3306/dbtest?characterEncoding=utf-8&useSSL=false";
// 生成 16 位随机 AES 密钥
String randomKey = AES.generateRandomKey();
// 随机密钥加密
String u1 = AES.encrypt(username, randomKey);
String p1 = AES.encrypt(password, randomKey);
String u2 = AES.encrypt(url, randomKey);
return randomKey + "----->" + u1 + "----->" + p1 + "----->" + u2;
}
}
- 获取加密数据
5293ddac6f8c327f----->1HCzw/UUT+4vUw2cz0eCNg==----->/59gLNkQBhJhNyTUP++S9Q==----->+FEpwLQBHHkHGSaG4QXl17v+vD0ileafcMUgEY0oiRiYEHe6gq+w8NOT32JJgyYzJ+QaqSFQ8GT4LtjlyGFQ46JAWzoHOrHFPiXYOqm8nQQ=
- 配置yml文件:
需要以mpw开头
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: mpw:1HCzw/UUT+4vUw2cz0eCNg==
password: mpw:/59gLNkQBhJhNyTUP++S9Q==
url: mpw:+FEpwLQBHHkHGSaG4QXl17v+vD0ileafcMUgEY0oiRiYEHe6gq+w8NOT32JJgyYzJ+QaqSFQ8GT4LtjlyGFQ46JAWzoHOrHFPiXYOqm8nQQ=
- 将项目打成jar包后,使用cmd进入jar所在文件夹:
启动jar包,mpw.key为生成的 16 位随机 AES 密钥
C:\work\github\mybatis-case-repo\02\demo13\demo01\target>java -jar demo01-0.0.1-SNAPSHOT.jar --mpw.key=5293ddac6f8c327f
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.6.3)
_ _ |_ _ _|_. ___ _ | _
| | |\/|_)(_| | |_\ |_)||_|_\
/ |
3.4.0
- 访问接口测试,当控制台出现sql语句,说明配置成功
- 数据安全保护通常使用在生产环境中
- 生成的16为随机密钥掌握在少数人手中