Mybatis-Plus数据安全保护-及其使用方法

Mybatis-Plus数据安全保护-及其使用方法

①、防止删库跑路
得到十六位随机密钥(由核心人员保存)

@Test
void test(){ //生成十六位随机AES密钥
    String randomKey= AES.generateRandomKey();
    System.out.println(randomKey);
}

并用生成的十六位随机密码对需要加密的数据进行加密,如数据库url,username,password

@Test
void test01() {
    //生成的十六位随机AES密钥
    String randomKey = "bd8526e2b6b6ace8";

    //使用随机密钥加密需要加密的数据,列如数据库url,username,password
    String url = "jdbc:mysql://localhost:3306/mybatisplus?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8";
    String username = "root";
    String password = "admin";
    String aesUrl = AES.encrypt(url, randomKey);
    String aesUsername = AES.encrypt(username, randomKey);
    String aesPassword = AES.encrypt(password, randomKey);
    System.out.println("url:"+aesUrl);
    System.out.println("username:"+aesUsername);
    System.out.println("password:"+aesPassword);
}

在这里插入图片描述

# 生产环境

# 数据源
spring:
  datasource:
    #username: root
    #password: admin

    # 加密数据
    username: mpw:vSwP+pBG9qRixd7SwbqFuA==
    password: mpw:QJiZjLAeDB/ed3ebNX46Kg==

    #url: jdbc:mysql://localhost:3306/mybatisplus?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
    #driver-class-name:  com.mysql.cj.jdbc.Driver

    # 数据库安全
    url: mpw:UXllUrEVHvn8iFpm0L/LMyUvQ+E81nwubz0ISIL6T0LrbrC+tEBUa3euZyH1Df/npcCoDtgYOBbtn/AbgpDrRck2DjLSVNHm9y7V2Z67TSmnRkIW2T6Kq28+qC3CASl1RlIT35kZXp22E++UxxIVpA==
    driver-class-name: com.p6spy.engine.spy.P6SpyDriver
    type: com.alibaba.druid.pool.DruidDataSource

注意!

  • 加密配置必须以 mpw: 字符串开头
  • 随机密钥请负责人妥善保管,当然越少人知道越好。
  • 本地是不能连接数据库的,这个是用于生产环境的

使用方法:

1.在启动类种随便实现一个查询,能查询到证明数据库访问成功

启动类:

@SpringBootApplication
@MapperScan("com.tulingxueyuan.mp.mapper")
public class Application {
    static EmployeeService employeeService;

    @Autowired
    public void setEmployeeService(EmployeeService employeeService) {
        Application.employeeService = employeeService;
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
        //此处若能查找到数据表示成功解密(证明加密生效)
        System.out.println(employeeService.getById(1));
    }

}

2.打包刚才项目为jar包,并利用命令行启动

1)、打包
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
2)、去到jar包所在目录,在当前目录下执行cmd命令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nO5ViaA0-1639903569172)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20211219160404791.png)]
在这里插入图片描述
3)在cmd中,输入命令:java -jar 04_expand_test-0.0.1-SNAPSHOT.jar --mpw.key=bd8526e2b6b6ace8 --spring.profiles.active=prod
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h9uC8q9N-1639903569174)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20211219161348475.png)]
在这里插入图片描述
在这里插入图片描述
出现查询语句,证明解密成功!也就是在生产环境种使用成功

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心醉瑶瑾前

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值