zoukankan      html  css  js  c++  java
  • 【SpringBoot】SpringBoot集成jasypt数据库密码加密

      一.为什么要使用jasypt库?

        目前springboot单体应用项目中,甚至没有使用外部配置中心的多服务的微服务架构的项目,开发/测试/生产环境中的密码往往是明文配置在yml或properties文件中,

        这样就会导致密码泄露的安全隐患,被不法人员利用从而泄露公司数据信息

        因此,jasypt库能通过密码加密减少明文密码泄露的风险;

      

      二.什么是jasypt库?

       参考:http://www.jasypt.org/index.html

         Jasypt是一个Java库,允许开发人员以最小的努力将基本的加密功能添加到他/她的项目中,而无需对密码学的工作原理有深入的了解。

        1.用于单向和双向加密的高安全性,基于标准的加密技术。加密密码,文本,数字,二进制文件...

        2.与Hibernate透明集成。

        3.适用于集成到基于Spring的应用程序中,还可以与Spring Security透明集成。

        4.用于加密应用程序(即数据源)配置的集成功能。

        5.多处理器/多核系统中高性能加密的特定功能。

        6.与任何JCE提供程序一起使用的开放API。

        通俗一点就是,方便开发者使用的一个密码加密库的Java库

      

      三.怎么使用jasypt库?

       以单体Springboot项目为例,Springboot版本2.1.x,Java8

       1.引入jasypt库的 maven依赖

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

       2.yml文件中配置jasypt 加密密码

    jasypt:
      encryptor:
        password: Gabriel

         3.启动类添加@EnableEncyptableProperties注解

    @SpringBootApplication
    @MapperScan(basePackages = "com.gabriel.stage.mapper")
    @EnableEncryptableProperties
    public class StageApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(StageApplication.class, args);
        }
    
    }

       4.通过jar包加密数据库的明文密码

        java –cp jar包所在路径jar包 org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=”数据库密码” password=加密字段,随意设置algorithm=默认PBEWithMD5AndDES加密

      

       password密码 使用ENC(加密后的密码)配置 

        

       

  • 相关阅读:
    JavaScript跳转到指定页面并且到指定的tab切换窗口
    三层架构之基础篇(对数据库增删改查)
    三层架构之基础篇(三层架构模型)
    过一天不登QQ的生活
    MVC + EF 框架 对数据库做增删改查
    想说的话
    新的2019年,向上
    C#读取txt文档
    C#写的 电子邮件客户端(winform窗体)
    C# 鼠标任意拖动无边框窗体(调用API函数)。
  • 原文地址:https://www.cnblogs.com/july-sunny/p/12248552.html
Copyright © 2011-2022 走看看