转载:https://www.cnblogs.com/zqyx/p/9687136.html

在micro service体系中,有了config server,我们可以把配置存放在git、svn、数据库等,普通的web项目也基本上是把配置存放在配置文件中。如果我们把大量的配置信息都放在配置文件中是会有安全隐患的,那么如何消除这个隐患呢?最直接的方式就是把配置信息中的一些敏感信息(比如数据库密码、中间件密码)加密,然后程序在获取这些配置的时候解密,就可以达到目的。这个时候,jasypt框架就派上用场了。

Jasypt is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography works.

  • High-security, standards-based encryption techniques, both for unidirectional and bidirectional encryption. Encrypt passwords, texts, numbers, binaries...
  • Transparent integration with Hibernate.
  • Suitable for integration into Spring-based applications and also transparently integrable with Spring Security.
  • Integrated capabilities for encrypting the configuration of applications (i.e. datasources).
  • Specific features for high-performance encryption in multi-processor/multi-core systems.
  • Open API for use with any JCE provider.
  • ...and much more

意思其实就是可以把Jasypt这个Java库当成是一个黑盒子,无需深入了解里面怎么运作的,可以拿来直接用(当然,作为码农我们还是要去一探究竟的,个人兴趣自己看吧)。现在基本上项目都集成spring boot了,因此我们可以使用jasypt-spring-boot-starter

1. 引入pom包

 <dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>

2. 找到maven仓库中的 jasypt-1.9.2.jar(路径是:.m2\repository\org\jasypt\jasypt\1.9.2

3. 调用jasypt-1.9.2.jar包中一个main方法org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI ,源码参考:

 

然后执行一下语句:

java -cp jasypt-1.9.2.jar  org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="test" password=salt algorithm=PBEWithMD5AndDES

-- input参数:你想要加密的密码
-- password参数:jasypt用来加密你的密码的密码

结果如下图,途中的output就是加密后的密文了。

4. 修改配置文件,把配置文件中要加密的字段改为:ENC(密文)

system:
mysql:
url: xxx.xxx.xx.xx
username: username
password: ENC(qh8kixDUkvm1DIJrpLFtzw==) jasypt:
encryptor:
password: salt

以上就可以达到目的。

配置文件的属性ENC加密的更多相关文章

  1. Spring对外部属性文件指定的某个属性进行加密、解密

    [From] http://blog.csdn.net/ethanq/article/details/7333897 在我们开发当中,经常会用到spring框架来读取属性文件的属性值,然后使用占位符引 ...

  2. SpringBoot项目配置文件中密码的加密

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/15565862.html 版权声明:本文为博主原创文章,转载请附上博文链接! 公众号:追梦1819 ...

  3. //读取配置文件(属性文件)的工具类-ConfigManager

    package com.pb.news.util; import java.io.IOException;import java.io.InputStream;import java.sql.Resu ...

  4. Spring根据XML配置文件注入属性 其实也是造bean,看看是使用constructor还是setter顺带完成属性赋值

    方法一使用setter方法 package com.swift; public class Book { private String bookName; public void setBook(St ...

  5. Maven配置文件POM属性最全详解

    注:本文内容来源于: BlueKitty1210 <Maven配置文件POM属性最全详解> <project xmlns="http://maven.apache.org/ ...

  6. Spring Cloud Config-Client 无法获取 Config-Server 在 github 上的配置文件的属性值,竟然是因为

    Spring Cloud Config-Client 无法获取 Config-Server 在 github 上的配置文件的属性值,竟然是因为!!! 2018年07月23日 16:33:25 一颗很菜 ...

  7. 关于IBatisNet的配置文件中数据库连接字符串加密处理

    我们通常在IBatisNet配置文件 properties.config 加入数据库连接字符串.数据库连接字符串直接放在里面,没有被加密,很不安全.如果我们把 properties.config 文件 ...

  8. Log4J 配置文件全属性详解

    第一步:加入log4j-1.2.8.jar到lib下. 第二步:在CLASSPATH下建立log4j.properties.内容如下: 1 log4j.rootCategory=INFO, stdou ...

  9. spring-自动加载配置文件\使用属性文件注入

    在上一篇jsf环境搭建的基础上 , 加入spring框架 , 先看下目录结构 src/main/resources 这个source folder 放置web项目所需的主要配置,打包时,会自动打包到W ...

随机推荐

  1. Scratch-介绍“克隆”

    上次我们模仿一个扔小球的运动, 用到了Scratch的“克隆”. 用Scratch模仿扔小球 “克隆”命令 Scratch“克隆”有三个命令积木. 区分“本体”和“克隆体” 使用“克隆”命令, 我们发 ...

  2. ASP.NET Core启动流程

    1. 引言 对于ASP.NET Core应用程序来说,我们要记住非常重要的一点是:其本质上是一个独立的控制台应用,它并不是必需在IIS内部托管且并不需要IIS来启动运行(而这正是ASP.NET Cor ...

  3. NIPS 2018 | 程序翻译新突破:UC伯克利提出树到树的程序翻译神经网络

    NIPS 2018 | 程序翻译新突破:UC伯克利提出树到树的程序翻译神经网络 机器之心 ​ 已认证的官方帐号 49 人赞同了该文章 选自arXiv,作者:Xinyun Chen.Chang Liu. ...

  4. mybaits实现oracle批量新增数据,回填主键

    项目有需求,百度了很久,反正他们说的方法,我都没成功,我也不知道是不是我写代码的姿势不正确,没办法只能自己想法子了 我们这个项目用到了通过Mapper,通用Mapper里通过OracleProvide ...

  5. HTTP抓包

    1 概述 wireshark:全平台抓包工具,需要图形化界面,十分强大: httpry:http抓包插件,功能一般,操作简单: tcpdump:强大的抓包插件,支持多种网络协议. 2 httpry ( ...

  6. R语言学习笔记:glue包实现变量传参

    glue包介绍 glue包可用于自定义变量,然后通过传参的方式,对字符串部分内容进行自适应修改. 例如:可将日期赋值为:date = as.Date("2019-12-05"),然 ...

  7. fastclick插件中存在的bug

    1.在vue项目中安装fastclick插件 npm install --save fastclick 2.在main.js中引入并绑定到body import FastClick from 'fas ...

  8. CentOS 7 配置VNCServer

    因为一直在用xmanager ,所以CentOS 7 上没过VNCSserver了,最近安装Oracle19C ,xmanager 总是卡死,所以配置VNC. 发现仅仅yum install -y t ...

  9. Image Processing and Analysis_15_Image Registration:a survey of image registration techniques——1992

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  10. Flutter——BottomNavigationBar组件(底部导航栏组件)

    BottomNavigationBar常用的属性: 属性名 说明 items List<BottomNavigationBarItem> 底部导航条按钮集合 iconSize icon c ...