当前位置: 首页 > news >正文

Spring Boot (v3.2.12) + application.yml + jasypt 数据源加密连接设置实例

1、安装 jasypt 依赖

    <!-- Jasypt 加密依赖 --><dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.5</version></dependency>

2、生成密文

打开 jasypt-1.9.3.jar 所在目录

使用命令行

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="Sinmia123" password=WYLIMS_MASTER_KEY algorithm=PBEWithMD5AndDES

生成数据库连接密码密文

3、设置系统环境变量(windows)

新建或编辑系统变量:数据库连接的密码(密文)

新建或编辑系统变量:数据库连接的用户名

新建或编辑系统变量:数据库驱动类名称

新建或编辑系统变量:数据库连接的url

新建或编辑系统变量:jasypt 加密密钥

4、配置文件 application.yml 设置数据源连接信息

配置 jasypt

配置数据源 spring.datasource

spring:datasource:# driver-class-name: 数据库驱动类名称# url: 数据库连接的url# username: 数据库连接的用户名# password: 数据库连接的密码#    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver# 从系统变量中获取driver-class-name: ${DB_DRIVER}
#    url: jdbc:sqlserver://127.0.0.1:1433;databaseName=wylims# 从系统变量中获取url: ${DB_URL}# 从系统变量中获取username: ${DB_USERNAME}# 先通过 ${DB_PASSWORD} 从系统变量中获取数据库登录密码密文,再通过 ENC 解密(使用 jasypt 的加密密钥和加密算法进行解密)password: ENC(${DB_PASSWORD})# 配置 jasypt
# 生成密文,bash: java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="Sinmia123" password=WYLIMS_MASTER_KEY algorithm=PBEWithMD5AndDES
# 解密密文,bash: java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="YSpoz9PyDjn2eimXDB0Z1Rf2Vo3hehp1" password=WYLIMS_MASTER_KEY algorithm=PBEWithMD5AndDES
jasypt:encryptor:# 加密密钥password: ${JASYPT_ENCRYPTOR_PASSWORD}# 加密算法,经测试验证在配置文件 application.yml 中支持 PBEWithMD5AndDES,不支持 PBEWithMD5AndTripleDES、PBEWITHHMACSHA512ANDAES_256algorithm: PBEWithMD5AndDES# PBEWithMD5AndDES 不需要 iv,必须设置 iv-generator-classname: org.jasypt.iv.NoIvGeneratoriv-generator-classname: org.jasypt.iv.NoIvGenerator
#    key-obtention-iterations: 1000
#    pool-size: 1
#    salt-generator-classname: org.jasypt.salt.RandomSaltGenerator
#    string-output-type: base64
#    # 加密识别属性,用于识别加密的内容,如 ENC(content),括号包裹的内容 content 是密文,会进行解密处理
#    property:
#      # 前缀:默认 ENC(
#      prefix: "ENC("
#      # 后缀:默认 )
#      suffix: ")"

参考资料

JASYPT: Java Simplified Encryption 1.9.3-SNAPSHOT API

http://www.lryc.cn/news/619818.html

相关文章:

  • Java Stream API 中常用方法复习及项目实战示例
  • AR技术赋能风电组装:效率提升30%,错误率降低50%
  • 华为悦盒EC6108V9-1+4G版-盒子有【蓝色USB接口】的特殊刷机说明
  • UniApp开发常见问题及解决办法
  • RabbitMQ面试精讲 Day 21:Spring AMQP核心组件详解
  • FluxApi - 使用Spring进行调用Flux接口
  • 后端Web实战-MySQL数据库
  • 【SpringBoot系列-01】Spring Boot 启动原理深度解析
  • 力扣121:买卖股票的最佳时机
  • 敲响变革的钟声:AI 如何重塑前端开发的基础认知
  • Java毕业设计选题推荐 |基于SpringBoot的水产养殖管理系统 智能水产养殖监测系统 水产养殖小程序
  • Kubernetes部署apisix的理论与最佳实践(三)
  • 从原材料到成品,光模块 PCB 制造工艺全剖析
  • JavaWeb-XML、HTTP协议和Tomcat服务器
  • 解析Vue3中集成WPS Web Office SDK的最佳实践
  • DAY42 Grad-CAM与Hook函数
  • Spring Boot调用优化版AI推理微服务 集成 NVIDIA NIM指南
  • 利用生成式AI与大语言模型(LLM)革新自动化软件测试 —— 测试工程师必读深度解析
  • Pycharm选好的env有包,但是IDE环境显示无包
  • Appium-移动端自动测试框架详解
  • windows通过共享网络上网
  • 100、【OS】【Nuttx】【构建】cmake 配置保存
  • 2025年跨网文件摆渡系统分析,跨网文件交换系统实现瞬间数据互通
  • Windows基础概略——第一阶段
  • 5种缓存策略解析
  • scikit-learn/sklearn学习|岭回归linear_model.Ridge()函数解读
  • 流处理 or 批处理?大数据架构还需要流批一体吗?
  • USB基础 -- USB2.0设备插入的过程
  • 6 .循环-for
  • MySQL 到 ClickHouse 明细分析链路改造:数据校验、补偿与延迟治理