url : jdbc : postgresql : //127.0.0.1 : 5432/db_name username : db_user1 password : qwe123 !@ # driver-class-name : org.postgresql.Driver

加密后配置

生成环境可去掉注释
数据源类型可根据实际情况做调整

spring:
  datasource:
    url: jdbc:postgresql://127.0.0.1:5432/db_name
    # 原用户名 db_user1
    username: f8e50229847f3b94b6f1b4fce10cb9a4
    # 原密码 qwe123!@#
    password: 9b4775c191b55f96df1f6fb4df414870
    driver-class-name: org.postgresql.Driver
# 数据库秘钥
datasource:
  decrypt:
    key: j6j8Odpdj4O7fNlM

新建SecurityDataSourceConfig.class文件

import cn.hutool.core.util.CharsetUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
import cn.hutool.crypto.symmetric.SymmetricCrypto;
import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils;
import javax.sql.DataSource;
@Configuration
@Slf4j
public class SecurityDateSourceConfig {
    @Value("${datasource.decrypt.key}")
    private String decryptKey;
    @SuppressWarnings("unchecked")
    protected <T> T createDataSource(DataSourceProperties properties, Class<? extends DataSource> type) {
        //生成密钥
        byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue(), this.decryptKey.getBytes()).getEncoded();
        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key);
        String encryptUserName = aes.decryptStr(properties.determineUsername(), CharsetUtil.CHARSET_UTF_8);
        String encryptPassword = aes.decryptStr(properties.determinePassword(), CharsetUtil.CHARSET_UTF_8);
        log.info("解密后的username = [" + encryptUserName + "]");
        log.info("解密后的password = [" + encryptPassword + "]");
        DataSourceBuilder builder = DataSourceBuilder.create(properties.getClassLoader()).type(properties.getType()).driverClassName(properties.determineDriverClassName())
                .url(properties.determineUrl()).username(encryptUserName).password(encryptPassword);
        return (T) builder.type(type).build();
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.hikari")
    public HikariDataSource dataSource(DataSourceProperties properties) {
        HikariDataSource dataSource = createDataSource(properties, HikariDataSource.class);
        if (StringUtils.hasText(properties.getName())) {
            dataSource.setPoolName(properties.getName());
        return dataSource;
    public static void main(String[] args) throws Exception {
        String password = "qwe123!@#";
        String username = "db_user1";
        String securityKey = "j6j8Odpdj4O7fNlM";
        //生成密钥
        byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue(), securityKey.getBytes()).getEncoded();
        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key);
        //加密为16进制表示
        String encryptHexUserName = aes.encryptHex(username);
        String encryptHexPassword = aes.encryptHex(password);
        //解密为字符串
//        String decryptUserNameStr = aes.decryptStr(encryptHexUserName, CharsetUtil.CHARSET_UTF_8);
        System.out.println("加密后的username = [" + encryptHexUserName + "]");
        System.out.println("加密后的password= [" + encryptHexPassword + "]");
                    springboot数据库连接用户名和密码加密配置文件存储加密之后的数据库连接用户名和密码。加密方式:对称加密(可根据实际情况,自作更改)加密工具参考Hutool原配置文件中数据源配置spring:  datasource:    url: jdbc:postgresql://127.0.0.1:5432/db_name    username: db_user1    password: qwe123!@#    driver-class-name: org.postgresql.
注册:首先检查用户名和邮箱是否存在,如不存在即可进行注册,并将用户输入的密码进行MD5加密,注册成功后提示注册成功,并将用户信息保存到数据库中。
登录:使用宠物医疗服务系统前是需要用户登录个人账号。
动物资讯:用户登录系统首页时,可以浏览养宠资讯信息,根据不同地宠物可以查看每个不同宠物饲养地方式等,还可以将自己感兴趣的资讯点赞以及加入收藏列表中。
宠物信息:用户可以在系统中的宠物信息栏内搜索宠物信息,具体包括:宠物名称、宠物类别、年龄、性别、编号,查看宠物图片等。
宠物领养:用户可以查看宠物信息表的宠物状态,可以根据状态发起领养申请:包括填写宠物编号、宠物名称、性别、类别、用户账号,提交领养申请。
用户管理:对用户进行管理,用户的注册,包括用户昵称、用户名、用户的宠物信息(宠物类别、宠物性别、年龄等)用户的账号信息。
宠物信息列表:增加与宠物相关的信息,对信息进行列表,列表信息包括:宠物编号、名称、图片上传。
宠物领养信息;有关于宠物具体信息,宠物品种、宠物名称、领养人、联系电话,领养审核状态。
收容捐赠;主要是募捐用途说明,所需资金等。
捐赠信息;
				
1. 需求背景我们在开发应用时,需要连接数据库,一般把数据库信息放在一个属性配置文件中,比如jdbc.properties,具体的内容#mysql的配置文件 jdbc.url=jdbc:mysql://127.0.0.1:3306/test jdbc.username=root jdbc.password=123456里面用明文的方式存储着数据库的敏感信息用户名username和密码passwor...
基于Java8+SpringBoot的校园二手交易平台,前后端分离,主要用户类别有注册用户、管理员和游客。 后端采用SpringBoot集成Mybatis+SpringMVC 前端采用Vue+Element实现 数据库:Mysql8.0.28 用户注册与登录:用户需要注册账号并登录才能进行交易操作。用户注册时需要填写个人信息,如用户名密码、手机号码等。 商品发布:卖家可以在平台上发布自己的商品信息,包括商品名称、描述、价格、图片等。可以考虑设置商品分类、标签等功能,方便用户搜索和筛选。 订单管理:买家可以选择购买商品,并进行下单操作。卖家在收到订单后可以确认订单、发货、确认收货等操作。平台需要提供订单管理功能,方便买家和卖家查看订单状态。 支付结算:平台需要提供支付功能,支持多种支付方式,如支付宝、微信支付、银行卡支付等。同时,需要设计结算功能,确保买卖双方的交易款项安全。 安全保障:平台需要考虑用户信息安全、交易安全等问题。可以采用加密技术、风控系统等措施,保障用户的信息和资金安全。 用户反馈:平台需要提供用户反馈功能,方便用户对交易体验、服务质量等进行评价和反馈。同时,
注册:首先检查用户名和邮箱是否存在,如不存在即可进行注册,并将用户输入的密码进行MD5加密,注册成功后提示注册成功,并将用户信息保存到数据库中。 登录:使用宠物医疗服务系统前是需要用户登录个人账号。 养宠资讯:用户登录宠物医疗服务系统首页时,可以浏览养宠资讯信息,根据不同地宠物可以查看每个不同宠物饲养地方式等,还可以将自己感兴趣的资讯点赞以及加入收藏列表中。 会员留言:用户可以在系统中的宠物信息栏内搜索宠物信息,具体包括:封面图、标题、分类、标签等。 宠物热点:用户可以浏览宠物列表,可以自行搜索某样宠物列表相关详情。具体功能需求如下:宠物列表搜索:前台用户可以直接在前台输入框内输入关键词进行搜索,页面弹跳出对应宠物信息。 宠物饲料:用户可以浏览宠物列表可以自行搜索某样宠物饲料列表相关详情。具体包括:图片、编号、饲料名称、价格、下单数量等。 遗弃宠物:用户可以浏览遗弃宠物列表可以自行搜索遗弃宠物列表相关详情。具体包括:编号、宠物名称、品种、性别、备注、图片等。 活动中心:用户可以查看宠物活动信息表的宠物状态,可以根据宠物状态发起领养申请:包括填写活动标题、内容、要求、图片。
宠物领养系统主要是为了更加地完善宠物领养的服务情况,对用户的信息、宠物信息、宠物领养、宠物转让等提供了方便的机制。本系统有多类使用者,分别是管理员和用户注册。以下是从这两种用户的角度分别介绍本系统所要实现的功能。 注册:首先检查用户名和邮箱是否存在,如不存在即可进行注册,并将用户输入的密码进行MD5加密,注册成功后提示注册成功,并将用户信息保存到数据库中。 登录:使用宠物领养系统前是需要用户登录个人账号。 宠物秀:用户登录宠物领养系统首页时,可以浏览系统发布的宠物秀信息等。 宠物领养:用户可以进行宠物信息浏览,选择自己想要领养的宠物进行领养申请。 用户管理:对用户进行管理,用户的注册,包括用户昵称、用户名、用户的宠物信息(宠物类别、宠物性别、年龄等)用户的账号信息: 宠物秀管理:对宠物秀信息进行发布管理。 宠物信息管理:对宠物信息进行维护管理。 领养管理:对领养信息进行维护管理。 宠物转让管理:对宠物转信息进行维护管理。
springboot项目已经创建好了,并且正常访问数据库。 项目架构:springboot+mybatis 1、在application.yml中引入publickey,将原来的明文密码改成加密后的密码。 2、在数据源配置类中DataSource的bean中设置两个属性:filters、connectionProperties。 public DataSource getDevDataSource...
protected $version = 0; protected $aesKey = 'libcckeylibcckey'; protected $aesIv = 'libcciv libcciv '; protected $blowString = '3DC5CA39'; protected $blowKey = null; <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.21</version> </dependency> 2.打开命令行 1 spring: 2 datasource: 3 jdbcUrl: jdbc:mysql://127.0.0.1:3306/jby?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false 4 username...
Springboot中实现简单登录的时候,一般会将用户名密码保存在数据库中,并对密码进行加密处理。如果你想在代码中查看设置的用户名密码,可以通过以下几种方式: 1. 直接查看数据库中保存的用户名密码。可以使用数据库客户端工具(如Navicat)连接数据库,查看保存用户信息的表,从而查看设置的用户名密码。 2. 查看代码中的配置文件。在Springboot中,可以通过配置文件(如application.properties或application.yml)来设置用户名密码。你可以查看这些配置文件,以获取设置的用户名密码。 3. 查看代码中的控制器类。在控制器类中,通常会定义一个登录接口,该接口会接收用户名密码,并将其与数据库中的数据进行比较。你可以查看控制器类中的代码,以获取设置的用户名密码。 需要注意的是,为了保障用户信息的安全,一般不建议将明文的用户名密码保存在代码中或者配置文件中。在实际的项目中,应该将用户名密码保存在数据库中,并对密码进行加密处理,以增强安全性。
We‘re sorry but XX doesn‘t work properly without JavaScript enabled. Please enable it to continue 34414