Jasypt 数据库及中间件密码加解密

这篇具有很好参考价值的文章主要介绍了Jasypt 数据库及中间件密码加解密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

9一、引入jar包

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

二、新增JasyptUtils工具类

import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;

public class JasyptUtils {
    /**
     * 加密
     *
     * @param password 配置文件中设定的加密盐值
     * @param value    加密值
     * @return 加密后的字符串
     */
    public static String encrypt(String password, String value) {
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        encryptor.setConfig(encrypt(password));
        return encryptor.encrypt(value);
    }

    /**
     * 解密
     *
     * @param password 配置文件中设定的加密盐值
     * @param value    解密密文
     * @return 解密后的字符串
     */
    public static String decrypt(String password, String value) {
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        encryptor.setConfig(encrypt(password));
        return encryptor.decrypt(value);
    }

    /**
     * 配置,对应yml中的配置
     *
     * @param password 盐值
     * @return SimpleStringPBEConfig
     */
    public static SimpleStringPBEConfig encrypt(String password) {
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        //设置盐值
        config.setPassword(password);
        //设置算法
        config.setAlgorithm("PBEWithMD5AndDES");
        config.setKeyObtentionIterations("1000");
        config.setPoolSize("1");
        config.setProviderName("SunJCE");
        config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setStringOutputType("base64");
        return config;
    }


    public static void main(String[] args) {
        // 加密 salt 盐 建议采用MD5加密
        String userNameEncryptStr = encrypt("salt", "root");
        String passwordEncryptStr = encrypt("salt", "root");
        System.out.println("加密后:" + userNameEncryptStr);
        System.out.println("加密后:" + passwordEncryptStr);
        // 解密 salt 盐
        String userNameDecryptStr = decrypt("salt", userNameEncryptStr);
        String passwordDecryptStr = decrypt("salt", passwordEncryptStr);
        System.out.println("解密后:" + userNameDecryptStr);
        System.out.println("解密后:" + passwordDecryptStr);
    }
}

三、修改application.yml

spring:
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/zipkin?serverTimezone=GMT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
    #username: root
    #password: root
    username: ENC(jw1V2fEkHpAhwskUUssbm/St79Hn0Nve)
    password: ENC(jw1V2fEkHpAhwskUUssbm/St79Hn0Nve)

jasypt:
  encryptor:
    # 密码盐值(自定义)
    password: salt
    # 加密算法设置
    algorithm: PBEWithMD5AndDES
    iv-generator-classname: org.jasypt.iv.RandomIvGenerator
    salt-generator-classname: org.jasypt.salt.RandomSaltGenerator

将加密后密码替换值yml文件ENC()括号内文章来源地址https://www.toymoban.com/news/detail-534225.html

到了这里,关于Jasypt 数据库及中间件密码加解密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ShardingSphere:强大的分布式数据库中间件【图文】

    Sharding-JDBC :它提供了一个轻量级的 Java 框架,在 Java 的 JDBC 层提供额外的服务。使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。Sharding-JDBC主要用于嵌入到应用程序中,使应用程序能够透明地

    2024年04月28日
    浏览(39)
  • Go重写Redis中间件 - Go实现内存数据库

    前面我们实现了一个简单的回发Redis,这里我们要实现一个真正的Redis内核 实现底层Dict数据结构 新建一个datastruct文件夹,放一些我们要用的数据结构,比如Redis的核心起始就是一个map,再新建一个包实现这个map或者叫字典,字典的底层使用的就是map dict.go 写一个Dict接口定义

    2024年02月11日
    浏览(35)
  • MySQL数据库中间件Mycat介绍及下载安装(教程)

    MyCat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。可以像使用MySQL一样来使用MyCat,对于开发人员来说根本感觉不到MyCat的存在。 开发人员只需要连接MyCat即可,而具体底层用到几台数据库,每一台数据库服务器里面存储了什么数据,都无需关心。 具体的分库分表

    2024年02月11日
    浏览(39)
  • 【云原生技术】云计算中的数据库中间件简介

    云计算中的数据库中间件是位于客户端和数据库服务器之间的软件层,提供数据库操作的抽象、管理、优化和扩展功能。这些中间件可以简化数据库的管理,提高性能和安全性,同时使应用程序更容易与数据库进行交互。 主要功能 连接池管理 : 管理数据库连接,提供连接池

    2024年01月22日
    浏览(42)
  • 搭建开源数据库中间件MyCat2-配置mysql数据库双主双从

    mycat2官网:MyCat2 前言:mycat2下载地址无法访问,不知道是不是被DNS污染了,还是需要搭梯子访问,所以我只能找到1.21的版本进行安装。搭建mycat2的前提是搭建数据库主从复制。 架构:双主双从 配置:3台服务器,4台数据库;其中2台服务器为数据库各装主从配置,1台服务器

    2024年01月21日
    浏览(50)
  • 数据库访问中间件--springdata-jpa的基本使用

    回顾 示例 JPQL 片段 And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname = ?2 Or findByLastnameOrFirstname … where x.lastname = ?1 or x.firstname = ?2 Is,Equals findByFirstnameIs,findByFirstnameEquals … where x.firstname = ?1 Between findByStartDateBetween … where x.startDate between ?1 and ?2 LessThan findByAgeLessT

    2024年02月14日
    浏览(30)
  • Springboot整合activiti5,达梦数据库,mybatis中间件

    由于工作流引擎不支持达梦数据库以及国产中间件,所以我们引入的时候会报错,这个时候就需要去改造代码和配置文件。各种文档和资料查找一天,现在对这个问题进行解决了。 1.查看网上的各类教程,手动将源码复制粘贴出来,进行修改。这方面可以自行去查找对应文档

    2024年02月14日
    浏览(29)
  • Python数据权限的管理通常涉及到几个关键组件:身份验证,、授权和访问控制。这通常是通过使用数据库、ORM(对象关系映射)框架、API框架和中间件

    在Python中,数据权限的管理通常涉及到几个关键组件:身份验证,、授权和访问控制。这通常是通过使用数据库、ORM(对象关系映射)框架、API框架和中间件等技术来实现的。以下是一些建议的步骤和工具,用于在Python项目中实施数据权限管理: 用户身份验证: 使用如Djan

    2024年04月26日
    浏览(30)
  • 十万字图文详解mysql、redis、kafka、elasticsearch(ES)多源异构不同种类数据库集成、数据共享、数据同步、不同中间件技术实现与方案,如何构建数据仓库、数据湖、数仓一体化?

    数据库大数据量、高并发、高可用解决方案,十万字图文详解mysql、redis、kafka、elasticsearch(ES)多源异构不同种类数据库集成、数据共享、数据同步、不同中间件技术实现与方案,如何构建数据仓库、数据湖、数仓一体化?Delta Lake、Apache Hudi和Apache Iceberg数仓一体化技术架构

    2024年02月07日
    浏览(38)
  • SpringBoot使用Jasypt对配置文件加密、数据库密码加密

    Dmo源码请点这里! Jasypt是一个Java简易加密库,用于加密配置文件中的敏感信息,如数据库密码。jasypt库与springboot集成,在实际开发中非常方便。 1、Jasypt Spring Boot 为 spring boot 应用程序中的属性源提供加密支持,出于安全考虑,Spring boot 配置文件中的敏感信息通常需要对它进

    2024年04月28日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包