首页 > 其他分享 >配置加密

配置加密

时间:2024-06-04 17:13:18浏览次数:27  
标签:username AES 加密 配置 mpw randomKey password

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

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

生成秘钥

首先,我们利用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==

修改配置

修改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:开头

测试

在启动项目的时候,需要把刚才生成的秘钥添加到启动参数中,像这样: --mpw.key=6234633a66fb399f 单元测试的时候不能添加启动参数,所以要在测试类的注解上配置: 然后随意运行一个单元测试,可以发现数据库查询正常。

标签:username,AES,加密,配置,mpw,randomKey,password
From: https://www.cnblogs.com/linzepro/p/18231264

相关文章

  • 【ubuntu使用记录】—— 如何使用vim编译器如何写入保存文件和linux常用的操作指令记
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言vim编译器的使用1.写入的操作2.保存的操作常用的系统操作指令1.查看系统配置2.查看库的版本3.基本操作指令4.解压和压缩相关指令(1)安装rar和unrar工具(2)使用前言在Ubuntu中,使用......
  • netplan网络配置@ubuntu留档
    ubuntu使用netplan进行网络配置,简单又方便。配置的时候编辑/etc/netplan目录里的文件即可,如00-installer-config.yaml文件。固定ip配置network:ethernets:enp0s5:dhcp4:noaddresses:[192.168.1.7/24]routes:-to:default......
  • 配置逻辑删除
    对于一些比较重要的数据,我们往往会采用逻辑删除的方案,即:在表中添加一个字段标记数据是否被删除当删除数据时把标记置为true查询时过滤掉标记为true的数据一旦采用了逻辑删除,所有的查询和删除逻辑都要跟着变化,非常麻烦。 为了解决这个问题,MybatisPlus就添加了对逻辑删除......
  • 任务大师什么配置能玩?Quest Master官方推荐配置一览
    QuestMaster/任务大师不仅将为玩家提供丰富的地牢挑战,还带来了地牢创造的丰富玩法,让勇士们的冒险欲望不断膨胀,勇闯混沌洞穴,击穿他人的设计或建造独一无二的幽深地牢。有感兴趣的玩家想知道QuestMaster/任务大师什么配置能玩,下面本文将为大家带来QuestMaster/任务大师的官方......
  • 配置Mysql允许远程连接
    目录1.开通其他主机使用root登录的权限2.在安装mysql的本机上添加防火墙允许规则,允许33063.补充1.开通其他主机使用root登录的权限在搜索里搜索msyql进入命令行,输入密码;usermysql showtables;显示所有数据库,我们可以看到有一个名为user的表。selectHost,Use......
  • kunernetes中路由器反射模式下与外部路由器配置BGP
    kunernetes中路由器反射模式下与外部路由器配置BGP,减少外部物理设备与K8S集群节点之间建立的BGP对等连接。如下为本次的拓扑图1.配置K8S集群为路由器反射模式1.1.关闭全互联模式root@master:~/bgp#catdisable-node-mesh.ymlapiVersion:projectcalico.org/v3kind:BGP......
  • .NET Core Configuration 配置项知识点一网打尽!
    控制台项目中,演示示例ConsoleAppConfig项目1.自定义 DictionaryConfig 内存字典模式dotnet add package Microsoft.Extensions.ConfigurationIConfigurationBuilder builder = new ConfigurationBuilder();builder.AddInMemoryCollection(new Dictionary<s......
  • git安装及配置密钥
    一、安装Git (默认你已经装好了)二、配置Git打开终端(在Windows上是GitBash,本教程以window为例,Mac或Linux上是Terminal)并配置你的用户信息。#设置全局用户名gitconfig--globaluser.name"你的名字"#设置全局电子邮件地址gitconfig--globaluser.email"you@examp......
  • .NET Core Configuration 配置项知识点一网打尽!
    控制台项目中,演示示例1.自定义 DictionaryConfig 内存字典模式dotnet add package Microsoft.Extensions.ConfigurationIConfigurationBuilder builder = new ConfigurationBuilder();builder.AddInMemoryCollection(new Dictionary<string, string>(){  ......
  • Spring boot - 仅当 JavaMailSender 豆存在时自动配置
    我相信这应该很简单,但我想不通。我有一个这样的配置类:@Configuration@AutoConfigureAfter(MailSenderAutoConfiguration.class)公共类MyMailConfiguration{@Bean@ConditionalOnBean(JavaMailSender.class)publicMyMailermyMailer(JavaMailSender......