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

SpringMVC使用jasypt加密配置文件 - Commissar

1、引入jasypt依赖库:

<!-- Jasypt核心库 -->
<dependency>
    <groupId>org.jasypt</groupId>
    <artifactId>jasypt</artifactId>
    <version>1.9.3</version>
</dependency>

2、修改配置

spring.jdbc.username=ENC(pxXd2wjuqNv6VbOegtaUxg==)
spring.jdbc.password=ENC(8Fr/wXgInniWSazqDRU2PyaZwpnQJAqX)

3、修改数据库配置文件

<!-- 数据源配置 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"><property name="url" value="#{app['spring.jdbc.url']}" /><property name="username" value="#{app['spring.jdbc.username']}" /><property name="password" value="#{app['spring.jdbc.password']}" /><property name="filters" value="slf4j" /><property name="maxActive" value="#{app['spring.jdbc.maxActive']}" /><property name="initialSize" value="#{app['spring.jdbc.initialSize']}" /><property name="minIdle" value="#{app['spring.jdbc.minIdle']}" /><!-- 配置获取连接等待超时的时间 --><property name="maxWait" value="#{app['spring.jdbc.maxWait']}" /><!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="60000" /><!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --><property name="minEvictableIdleTimeMillis" value="300000" /><property name="validationQuery" value="SELECT 'x'" /><property name="testWhileIdle" value="true" /><property name="testOnBorrow" value="false" /><property name="testOnReturn" value="false" /><property name="connectProperties"><props><prop key="appPrivateKeyFilePath">密钥</prop></props></property><property name="userCallback" ref="dbNameCallback"/><property name="passwordCallback" ref="dbPasswordCallback" /></bean><bean id="dbPasswordCallback" class="com.stock.capital.agent.api.controller.DbPasswordCallback"><property name="encPassword" value="#{app['spring.jdbc.password']}" /></bean><bean id="dbNameCallback" class="com.stock.capital.agent.api.controller.DbNameCallback"><constructor-arg index="0" value="密钥" /><property name="encUserName" value="#{app['spring.jdbc.username']}" /></bean>

4、编写生成加密串代码

public static void main(String[] args) {// 注意:加密密钥必须与生产环境一致String encryptionPassword = "密钥";StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();encryptor.setAlgorithm("PBEWithMD5AndDES");encryptor.setPassword(encryptionPassword);String plainText = "用户名";String encryptedText = encryptor.encrypt(plainText);System.out.println("加密后的文本: ENC(" + encryptedText + ")");StandardPBEStringEncryptor decryptor = new StandardPBEStringEncryptor();decryptor.setAlgorithm("PBEWithMD5AndDES");decryptor.setPassword(encryptionPassword);String decryptedText = decryptor.decrypt(encryptedText);System.out.println("解密后的文本: " + decryptedText);}

 

http://www.hskmm.com/?act=detail&tid=8144

相关文章:

  • 三行Python代码实现深度学习推理:Infery全面解析
  • 基于Python+Vue开发的口腔牙科预约管理系统源码+运行步骤
  • 网页禁止复制
  • 混元开源之力:spring-ai-hunyuan 项目功能升级与实战体验
  • ECT-OS-JiuHuaShan 框架实现元推理,是人类文明的金种子
  • MATLAB实现连续投影算法
  • PS辉光眩光特效插件 BBTools Glow Glare 2 V2.4.3 For Photoshop
  • 内外网文件摆渡工具怎么选的实用指南
  • SAP 文件上传方式导入上、下限
  • 拓展坞相关问题
  • 深入解析:第 9 篇:深入浅出学 Java 语言(JDK8 版)—— 吃透泛型机制,筑牢 Java 类型安全防线
  • 鸿蒙应用开发从入门到实战(八):ArkTS自定义组件语法
  • 剑指offer-31、整数中1出现的次数
  • 动态黑名单的运作机制与实时防护策略
  • 【译】让性能民主化:Copilot Profiler Agent 在实际代码中的应用
  • JS对象池
  • objectarx项目props文件中判断条件的修改
  • 效率翻倍新技能:JDK8后的新特性
  • 实用指南:《URP管线中后处理效果的创新应用与优化实践》
  • 百日筑基
  • 顶尖科技人才超50万城市:印度4个,中国3个,美国0个
  • 院士增选有效候选人公示材料都有什么内容?
  • GPU微架构与多线程架构深入解析
  • TechInsights 拆解:蔚来“亚当(Adam)”超级计算机
  • 拼接
  • 用户只需要知道「怎么办」,不需要知道「为什么炸了」
  • 2025数学院士增选背后的争议:海外光环与本土贡献的考量
  • 完整教程:建筑物裂缝、钢筋裸漏、建筑物墙面脱落图像数据集
  • 深入剖析布谷网剧短剧app系统软件源码之技术
  • 在AI技术快速实现功能的时代,挖掘电子书阅读器新需求成为关键突破点