MybatisPlus----- 扩展功能 配置加密(选学)

目前我们配置文件中的很多参数都是明文,如果开发人员发生流动,很容易导致敏感信息的泄露。所以MybatisPlus支持配置文件的加密和解密功能。

我们以数据库的用户名和密码为例。

3.5.1.生成秘钥

首先,我们利用AES工具生成一个随机秘钥,然后对用户名、密码加密:

package com.itheima.mp;

import com.baomidou.mybatisplus.core.toolkit.AES;
import org.junit.jupiter.api.Test;

class MpDemoApplicationTests {
    @Test
    void contextLoads() {
        // 生成 16 位随机 AES 密钥
        String randomKey = AES.generateRandomKey();
        System.out.println("randomKey = " + randomKey);

        // 利用密钥对用户名加密
        String username = AES.encrypt("root", randomKey);
        System.out.println("username = " + username);

        // 利用密钥对用户名加密
        String password = AES.encrypt("MySQL123", randomKey);
        System.out.println("password = " + password);

    }
}

打印结果如下:

randomKey = 6234633a66fb399f
username = px2bAbnUfiY8K/IgsKvscg==
password = FGvCSEaOuga3ulDAsxw68Q==

3.5.2.修改配置

修改application.yaml文件,把jdbc的用户名、密码修改为刚刚加密生成的密文:

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mp?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: mpw:QWWVnk1Oal3258x5rVhaeQ== # 密文要以 mpw:开头
    password: mpw:EUFmeH3cNAzdRGdOQcabWg== # 密文要以 mpw:开头

3.5.3.测试

在启动项目的时候,需要把刚才生成的秘钥添加到启动参数中,像这样:

--mpw.key=6234633a66fb399f

单元测试的时候不能添加启动参数,所以要在测试类的注解上配置:

然后随意运行一个单元测试,可以发现数据库查询正常。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1000BASE-T编码是通过8B1Q4编码方式和4D-PAM5调制方式来传输数据的。编码过程如下:首先,将每组8个比特的数据分割,并加上1个冗余位作为错误校验,总共为9个比特的数据。然后,根据冗余位和前两个比特数据选择转换表,得到剩下的6个比特所对应的4个符号值。这些符号值可以是-2、-1、0、+1、+2这5个值中的任意一个。接下来,将这4个符号值转换为相应的电平,通过PMA在双绞线上进行传输,这一系列的数据调制发送就被称为4D-PAM5方式。\[1\] 关于1Gbit/s的数据比特率的计算,可以从编码过程中得到。每个符号包含2个比特的数据,而PHY的参考时钟为125MHz,也就是PMA的发送波特率为125MBd。因此,一个波特码元包含2比特数据,每个线对上的数据率为125x2=250bps。由于4对线,所以总数据率为250x4=1000bps。需要注意的是,波特率和比特率是不同的概念,为了提高带宽利用率,人们想出了使用一个波特码元传输多个数据比特的方法。\[1\] 总结起来,1000BASE-T编码使用8B1Q4编码方式和4D-PAM5调制方式来传输数据,每个符号包含2个比特的数据,通过PMA在双绞线上进行传输,实现了1Gbit/s的数据比特率。\[1\] #### 引用[.reference_title] - *1* [【以太网硬件六】1000base-T物理层编码究竟是怎么编的?](https://blog.csdn.net/highman110/article/details/127141312)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [802.3 spec选学---1000BASE-T](https://blog.csdn.net/m0_53559277/article/details/127375166)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值